{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 04:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 04:30:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f7f6e20-b44f-488b-8799-461364cbb5fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 04:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 04:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:35:01"}
{"durationMs":1.62,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b919fe3-c31c-49ec-b9de-87d211920419","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 04:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 04:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 04:40:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"998e7559-2785-4720-b278-04a5c8be6ac4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 04:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 04:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 04:45:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e9e7968-f891-4387-a672-44959a657dfe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 04:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 04:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 04:50:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"198bd0bf-a779-4b68-aeb4-88fc06b1bf7b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 04:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 04:55:00","totalConnections":1}
{"durationMs":1.68,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7679b879-edfa-4a09-a050-8913b33afac7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 04:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 05:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 05:00:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e679e11e-5efc-45bd-80b2-e37a775d7fe6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 05:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 05:05:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24232b1a-ddde-4b8c-9ca4-2d74994caade","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 05:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 05:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 05:10:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7f702528-164d-4b1b-afdf-ab363d5840a6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 05:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 05:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 05:15:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"db0965b4-1673-4590-86c2-2da59a4b1d49","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 05:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 05:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 05:20:00","totalConnections":1}
{"durationMs":2.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3eec8a53-c93a-49c2-a758-36c7490b26e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 05:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 05:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 05:25:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a296c2f5-28e4-4b74-bbec-af2e6aa8e8fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 05:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 05:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 05:30:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"addf97c3-17d8-4abd-9099-caa843a7e64a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 05:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 05:35:00","totalConnections":1}
{"durationMs":2.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1a1cde26-5023-468a-854d-ca76da7d476f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 05:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 05:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 05:40:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0af41e4e-3592-4523-a4af-9ea960776d92","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 05:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 05:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 05:45:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6273ea4-3f76-4923-a457-686b27b8cd87","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 05:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 05:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 05:50:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c572c62d-778c-4ae2-8eff-746501e676f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 05:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 05:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 05:55:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"02e6bbc8-cd40-4d95-907c-73db9fbd64fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 05:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 06:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 06:00:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"efc65c3f-77b1-4a16-b0f7-544d17630268","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 06:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 06:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 06:05:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"03ced16b-a21b-413f-92b8-33f7845661fa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 06:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 06:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 06:10:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5553508e-4112-40e5-b8eb-c9ed44a02072","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 06:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 06:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 06:15:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"610f1cce-10ec-488e-abf4-f85b9e1acee3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 06:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 06:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 06:20:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e36158ca-f7e2-4ef6-b0a1-e315bb3d88ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 06:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 06:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 06:25:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bf6b1ec8-adae-435e-8f41-4e101babe0e9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 06:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 06:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 06:30:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"06b60f66-447b-415e-a323-bbf449dcb199","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 06:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 06:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 06:35:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"47c1bd5c-5b11-462d-bd2f-85a5ac23b213","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 06:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 06:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 06:40:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"45e12290-12f9-4f00-90c9-1ce2ae1f23a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 06:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 06:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 06:45:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aad47546-108f-44dc-9116-80a67f0aba3a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 06:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 06:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 06:50:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1eb9d56-b036-479e-8d00-435bb6fc286c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 06:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 06:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 06:55:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e78e3d5a-93b8-4800-aeac-0ad6273d5462","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 06:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 06:59:00"}
{"level":"info","message":"[CRON] Arrears reminder started","service":"cbc-sms","timestamp":"2026-08-24 07:00:00"}
{"level":"error","message":"[CRON] Arrears reminder failed:","service":"cbc-sms","timestamp":"2026-08-24 07:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 07:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 07:00:00","totalConnections":1}
{"durationMs":1.69,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a471308b-72ff-4a9c-8fa1-2349fb225868","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 07:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 07:05:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"199186ac-48c8-4e0a-bd89-dc7e08cfdd11","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 07:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 07:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 07:10:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4bc42799-a2c0-47df-9729-c6d1f1f15fa0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 07:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 07:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 07:15:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3f7b015b-b918-41f6-8e0a-bfaf74077b4c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 07:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 07:20:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87874850-f82f-4b44-b1be-00fc82d656f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 07:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 07:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 07:25:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"48a3eb41-6595-4d79-a011-16208c1e1762","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 07:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 07:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 07:30:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"67447e0b-d4c0-4a22-841a-48886ee65554","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 07:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 07:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 07:35:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8b1d757b-36b4-4f1d-932b-2677f372b126","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 07:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 07:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 07:40:00","totalConnections":1}
{"durationMs":2.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"645d9a0b-a3b5-466a-aa06-b40da5f11e1e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 07:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 07:45:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"90b98e31-dc3d-4002-a304-fd6e9eb5bc6f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 07:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 07:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 07:50:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"19df58c3-3ab4-4ea6-9ded-43ded6def842","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 07:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 07:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 07:55:00","totalConnections":1}
{"durationMs":2.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"240bee1a-adfd-49b8-93b3-ff61f6028ef9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 07:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 07:59:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-08-24T05:00:00.621Z","service":"cbc-sms","timestamp":"2026-08-24 08:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:00:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-08-24 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:524: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:581:17)\n    at process.processTimers (node:internal/timers:519:7)","timestamp":"2026-08-24 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 1 trial tenants","service":"cbc-sms","timestamp":"2026-08-24 08:00:00"}
{"level":"info","message":"[Subscription Job] Trial reminder (1d left) for school: Bungoma","service":"cbc-sms","timestamp":"2026-08-24 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 08:00:00","totalConnections":1}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-08-24 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-08-24 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-08-24 08:00:00"}
{"durationMs":1.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0b75833f-5434-4576-bfbc-2c09507aa500","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 08:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 08:05:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad184cff-a523-4c6f-bbe6-f0648bc1325a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 08:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 08:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 08:10:00","totalConnections":1}
{"durationMs":1.61,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4b5bcf5c-7ebd-4349-9612-92e841644ee3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 08:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 08:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 08:15:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de61a19c-a964-43ed-83d6-a796b48fe4d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 08:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 08:20:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9256c7e-8ebe-4030-8d1c-65d064ec1233","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 08:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 08:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 08:25:00","totalConnections":1}
{"durationMs":3.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ef965f9f-5dc7-4d3a-8467-53671f9429ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 08:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:29:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 08:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 08:30:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5c1d58a-52d4-401a-b8de-577b90a2a9e3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 08:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 08:35:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9b953525-26a0-4650-b401-cc119b22513f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 08:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:36:00"}
{"data":{"from":"/","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-08-24 08:36:45","userAgent":"Mozilla/5.0 (Linux; Android 15; M-KOPA X20 Build/AP3A.240905.015.A2; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/151.0.7922.85 Mobile Safari/537.36","userId":null}
{"data":{"from":"/","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-08-24 08:36:45","userAgent":"Mozilla/5.0 (Linux; Android 15; M-KOPA X20 Build/AP3A.240905.015.A2; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/151.0.7922.85 Mobile Safari/537.36","userId":null}
{"durationMs":2.96,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8b8e257e-6aa1-4a27-a0d1-2ef548102a6b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 08:36:45","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:37:00"}
{"durationMs":1.99,"ip":"197.248.50.19","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d26781bc-2231-4eb1-8ade-5d6c3020fccc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 08:37:51","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 08:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 08:40:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3e9c65b9-5ccd-4afd-9330-cb69f2d86382","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 08:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 08:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 08:45:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"39d34d8e-fd6d-4b25-a85e-c760573b8840","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 08:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 08:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 08:50:00","totalConnections":1}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"318426f0-21fb-49f6-9c9e-78d7d01e3951","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 08:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 08:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 08:55:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c0af1e30-d23a-4343-89d5-5abd2bc670b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 08:55:02","userId":null}
{"data":{"id":null,"label":"Pocket Money2","name":null,"type":null},"durationMs":58,"event":"UI_CLICK","ip":"197.248.50.19","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 08:55:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":null}
{"durationMs":2.31,"ip":"197.248.50.19","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"351290a8-eaea-4747-94c2-4ec88a4e2552","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 08:55:44","userId":null}
{"data":{"id":null,"label":"Accounts Overview","name":null,"type":null},"durationMs":8,"event":"UI_CLICK","ip":"197.248.50.19","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 08:55:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":null}
{"durationMs":2.14,"ip":"197.248.50.19","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"727ef7db-ef4f-40a8-afb9-b60787dadd2f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 08:55:47","userId":null}
{"data":{"id":null,"label":"Transactions","name":null,"type":null},"durationMs":11,"event":"UI_CLICK","ip":"197.248.50.19","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 08:55:53","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":null}
{"durationMs":2.22,"ip":"197.248.50.19","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a394d352-ffd6-4722-8c65-1d9dd5b57fd9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 08:55:53","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 08:59:00"}
{"level":"info","message":"[FeeClearanceEmail] Weekly job triggered","service":"cbc-sms","timestamp":"2026-08-24 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Starting weekly fee clearance email job","service":"cbc-sms","timestamp":"2026-08-24 09:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 09:00:00","totalConnections":1}
{"level":"info","message":"[FeeClearanceEmail] No current term found for school Nairobi Comprehensive school","service":"cbc-sms","timestamp":"2026-08-24 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Found 0 cleared students for kisii Highschool","service":"cbc-sms","timestamp":"2026-08-24 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Found 0 cleared students for Bungoma","service":"cbc-sms","timestamp":"2026-08-24 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Found 0 cleared students for CBC Model Primary School","service":"cbc-sms","timestamp":"2026-08-24 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Job completed in 0.07s. Processed 0 students, sent 0 emails","service":"cbc-sms","timestamp":"2026-08-24 09:00:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ffe27557-6067-484c-bd07-cfd167ea68a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 09:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 09:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 09:05:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b8188480-f7f9-4b98-ae29-9f704adeb435","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 09:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 09:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 09:10:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"baf19071-9bee-44cf-8432-06bd2b38a0f1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 09:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 09:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 09:15:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"54d5abc4-a7e7-4c65-857d-f47c617e4f74","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 09:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 09:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 09:20:00","totalConnections":1}
{"durationMs":2.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c0d2fc1a-c04d-47e3-8714-66bac82dadaf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 09:25:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0cef0056-d299-4aca-9723-90c9d524e4ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 09:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:29:00"}
{"level":"info","message":"[CRON] Attendance alert started","service":"cbc-sms","timestamp":"2026-08-24 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:524: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:581:17)\n    at process.processTimers (node:internal/timers:519:7)","timestamp":"2026-08-24 09:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 09:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 09:30:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b269f9d-0a9c-4c96-955c-c471d974357d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 09:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 09:35:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"06baf323-1b8e-4b3b-9bd3-ac0be7230722","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 09:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 09:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 09:40:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"03e47e80-7a5a-4f14-a72f-48cc54e79ba4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 09:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 09:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 09:45:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b093715f-1467-4c2c-8ebe-122c2e519f8f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 09:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 09:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 09:50:00","totalConnections":1}
{"durationMs":1.7,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"60d9d3f7-fd8e-4178-80dc-ee72482a11c1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 09:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 09:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 09:55:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d377e335-84d2-4c92-9af4-dc60c7dfbac8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 09:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 10:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 10:00:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5c2a5916-ff9a-403e-8c1e-666770b2a68c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 10:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 10:05:00","totalConnections":1}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6976d3b4-6b80-4f6e-a61f-89dea243e2c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 10:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 10:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 10:10:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"680ea515-ae3b-4ab1-96b0-cb5d89ca10ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 10:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 10:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 10:15:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2af382df-6a6d-4773-b967-908179fcc200","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 10:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 10:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 10:20:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9a31a882-0d28-40ca-80e5-d2c7d8616aaf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 10:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 10:25:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bf6e1dcc-1f44-4777-a999-9aa6bac58d15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 10:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 10:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 10:30:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6b7aab4-9870-4461-b333-1ea82d2b2734","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 10:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 10:35:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7478e7c0-3a27-428e-a9b4-fd0a59968aa1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 10:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 10:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 10:40:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77ca291c-e403-444b-b4a9-6f98191a0bf2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 10:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 10:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 10:45:00","totalConnections":1}
{"durationMs":1.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b22182da-9b49-4d55-995a-8cceafec46d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 10:50:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 10:50:01","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d47e053-0af2-4c6d-93c4-6484abd8d687","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 10:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 10:55:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b54f5017-fce7-46ec-a3d6-7d5317b61fd3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 10:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 10:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 11:00:00","totalConnections":1}
{"durationMs":1.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"602285a0-ef62-4566-9da8-6eb0b3eb1ce7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 11:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 11:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 11:05:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea956bea-4ced-42cc-a030-b2f72db3c4e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 11:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 11:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 11:10:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"458f5b1d-5bff-4204-9099-d61f3123c628","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 11:15:00","totalConnections":1}
{"durationMs":1.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"be8e1a5d-f08b-43c9-b419-fe361192018d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 11:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 11:20:00","totalConnections":1}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24ecf4ef-d227-40cf-b384-b7d9aed666d1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 11:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 11:25:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4b05b21-32c3-4ce0-9c69-16d828e7b5bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 11:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 11:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 11:30:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c2c85777-3f4e-48ed-8c97-1501d0d33bb6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 11:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 11:35:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"52e91946-26b7-403b-af45-f1e36294a1b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 11:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 11:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 11:40:00","totalConnections":1}
{"durationMs":2.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2348af0f-4fc0-4a5f-a43f-96a9fb09a18e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 11:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 11:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 11:45:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"793e0e76-57ab-4c8e-bbf1-e40af83e75c3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 11:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 11:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 11:50:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bff4ab42-1949-47c8-9448-e65091bf037b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 11:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 11:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 11:55:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"67cb9f2b-0794-404d-8680-5cb733c4dc81","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 11:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 12:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 12:00:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8e169588-16f3-4448-9d58-188d022beffb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 12:05:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ae31894-955c-42b9-acbc-fbcb6aa64d2c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 12:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 12:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 12:10:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a14da88-e595-4299-8c7a-c6a19a0e32b8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 12:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 12:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 12:15:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9e0f53c-c4ca-4c85-8ce8-932e05454da8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 12:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 12:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 12:20:00","totalConnections":1}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25199a63-c1ce-4d7a-a8b2-1d23e7d7208c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 12:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 12:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 12:25:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"362545c0-e43f-46b0-b71f-20eb62e041f8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 12:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 12:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 12:30:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f51f3e6-e8f4-4171-87ab-d0d8c73ff782","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 12:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 12:35:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"29f26224-6a7c-4052-a2c5-8465833b2101","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 12:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 12:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 12:40:00","totalConnections":1}
{"durationMs":1.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d5b52846-b606-49ae-aa70-9dcfaeda478c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 12:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 12:45:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"731814c9-050e-4876-968a-41f75a35ea4a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 12:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 12:50:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"09410b33-d9a3-4b64-8bf7-052d1d3b051c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 12:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 12:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 12:55:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6e1e3073-b508-4b49-968c-714cf96e6b06","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 12:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 13:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 13:00:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"56a1ba53-d6f5-4fb4-ac9e-649e761e0b0c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 13:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 13:05:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5cc7cfe6-f45c-4a72-be95-b2c86dc610fd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 13:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 13:10:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ede8c4d3-0934-4c32-bd8c-e68f43edfd40","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 13:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 13:15:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d8b21e0-d24a-4b06-b77e-030a44ada9de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 13:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 13:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 13:20:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7de10621-8766-40ad-8df4-c7b10f2a7a0e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 13:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 13:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 13:25:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b4d97ff5-e907-4546-923f-bf271f78ab6b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 13:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 13:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 13:30:00","totalConnections":1}
{"durationMs":1.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5cdff45f-0ee9-4056-afdb-778ae8f68871","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 13:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 13:35:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1cfbca82-eed7-4a26-ad62-b12be1871787","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 13:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 13:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 13:40:00","totalConnections":1}
{"durationMs":2.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"643a7daa-07cb-42b5-8b5b-7a182e20cf05","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 13:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 13:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 13:45:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cb81eb16-3cd5-49d2-914e-7d230d841da0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 13:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:48:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 13:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 13:50:00","totalConnections":1}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17049e08-aede-4377-8d20-48980e149d03","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 13:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 13:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 13:55:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d18e0d47-ed84-45d6-81e7-64680dea928a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 13:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 13:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 14:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 14:00:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a02d083f-c963-460c-8271-79c5f164deb2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 14:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 14:05:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e38fb924-e85c-452a-81e5-cbe7966a3617","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 14:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 14:10:00","totalConnections":1}
{"durationMs":1.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"73e44e30-5701-4368-b63e-25def58df729","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 14:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 14:15:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3a91bd58-73f6-44cc-be8c-43b7887e7fbe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 14:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 14:20:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"96bc3537-d5f9-45cc-b8b1-ad7ef2cde64b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 14:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 14:25:00","totalConnections":1}
{"durationMs":1.68,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"42e4fc3b-4d5e-4fba-b4d4-73ec02891225","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 14:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 14:30:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6eec05a-7f61-4f80-a6de-a6017b676bd8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 14:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 14:35:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4a78ec11-ca26-4d69-afc0-5b4f36499571","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 14:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 14:40:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"35ee4cf8-4fb6-478d-9832-5cfdffb41f7c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 14:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 14:45:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0336ea0e-92a7-4d4f-972b-49db28f2b84d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 14:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 14:50:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24969ad2-48f1-4b37-86d5-1bf6c9ee579b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:51:00"}
{"durationMs":2.02,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1800f1d2-64ad-496f-9dc3-0a873a7f1ab3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:22","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":33,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 14:51:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.45,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0767a080-5bd6-44c7-a88b-7d65bc229184","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:42","userId":null}
{"durationMs":2363.7,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"c76bfeb0-5347-45f0-82da-1614b89ac621","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:43","userId":null}
{"durationMs":39.91,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"a75b912c-1279-499f-9c67-6b50300292e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":109.77,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"58200fbc-53a6-4191-be37-c96c493118f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":94.97,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"abc0580d-73d9-426a-b9db-f850c924f6f3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":151.27,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"6eea577e-b142-4c91-a948-84967dfd8d3a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":80.7,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"36eca34d-cc49-43c5-a8fc-d71265228753","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":2745.9,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.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":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":431.4,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":102.76,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7dfa12df-c680-4abd-995c-5bbcba37f698","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":137.13,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"f975c0b2-f1e7-48a1-81f4-18181b54c2e1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":35.37,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"554ac4b0-9810-4700-97ef-e2aaf1f2092e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":107.14,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b97551bb-e474-463b-9951-9e3cd1ae2448","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":147.74,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"84d226da-a1ab-449d-b3e0-6abe442fffbc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":685,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":916.1,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":944.2,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":947.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1208.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.29,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fe3543b7-a08d-49ee-a2d2-72533ddee309","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":140.45,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"3660b29b-354a-418b-abfd-b591ca5db45e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":87.58,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"cf61a77f-9c90-4a05-92dc-2949efb2ce38","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":116.74,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"0a14f2a8-960e-47aa-9064-7cabef8995a4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":91.14,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"41be1508-9ace-4ca6-ad4c-b2bc2c454a73","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":63.03,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"3059ecba-69fe-48cd-bf4e-b7b5193fe782","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":124.25,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"eb9f6b73-5a76-46a2-9a80-4f8529523bd4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":144.23,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"735499b3-ae27-4589-986d-de4226a1a09a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.07,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"98a6c77e-bdca-4553-b8c7-fb0da82d151d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":113.97,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"1f38a602-871d-4e9f-a4fd-ca0c05ab4d8b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":925.1,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":937.9,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":939.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":944,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":479.2,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":550.6,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":679.3,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":680.9,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":711.3,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.63,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e447b3de-9650-4865-83cf-e2a77b70f84f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":779.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":824.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":825.9,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:51:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.52,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"456f82bf-4c63-48a8-833c-4fb7d480bd6f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:51:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:52:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":64,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:52:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.88,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1da98be2-81e2-42ad-97d0-3576e64dba02","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:52:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/guardians","navId":"1787572330736-853455","text":"Guardians"},"durationMs":null,"event":"NAV_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:52:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.59,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0b2acd66-b466-4143-993d-8af526ef9913","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:52:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":512.26,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&includeStudents=true","requestId":"9a079559-ff7a-4732-9562-46112818c152","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:52:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/guardians","navId":"1787572330736-853455","text":"Guardians","to":"/dashboard/guardians"},"durationMs":1850,"event":"NAV_PATH_CHANGE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:52:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787572330736-853455","to":"/dashboard/guardians"},"durationMs":1850,"event":"NAV_STALL","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:52:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787572330736-853455","to":"/dashboard/guardians"},"durationMs":1900,"event":"NAV_RENDER","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:52:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":49.86,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5dbb0f0c-88ae-4314-93a5-c193efc7f593","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:52:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/guardians"},"durationMs":933.4,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:52:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.37,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7c497f79-fcc5-4f4d-b2fa-5920f41b271b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:52:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":104.17,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=11&limit=10&includeStudents=true","requestId":"3e44c8e5-448a-41c2-b95c-ffe5bce24aad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:52:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":63,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:52:44","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/guardians"},"durationMs":539.9,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:52:44","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.83,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"90fa33bf-e09e-456c-82ff-f69d93b8499c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:52:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":67.1,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"51db30ea-5bc3-45b7-9a61-2a39b0d67b80","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:52:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":43.41,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f298ac79-f176-4c97-bb12-22ccd24623f7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:52:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":517.6,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:52:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":580.9,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:52:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.22,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d0515f92-6c4c-42a4-9928-27ff7877c76e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:52:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":210.22,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"a762d895-3023-41cb-93a1-a126e37ca7cf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:52:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.94,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"ac734be9-b355-40c9-9ede-1dabfb2428f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:52:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":88.93,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"5867614a-0a00-4dbd-bf9b-00c2fdef43c2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:52:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.6,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"3b9834b2-724e-4b77-b2d9-4dddd9fd4650","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:52:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:52:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:52:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":646,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:52:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":677.9,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:52:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":745.6,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:52:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.71,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7ad3a4b5-7a80-4165-83fb-e617b0522a9b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:52:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":827.1,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:52:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.65,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9431317c-cec0-4cb2-ba32-c6d4c241f3ed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:52:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:53:00"}
{"data":{"href":"/dashboard/communication/whatsapp","navId":"1787572378744-607121","text":"Open WhatsApp setup"},"durationMs":null,"event":"NAV_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.99,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0aa6864f-474d-4b92-9ab3-0ffda6956f55","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":82.71,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"ff73439c-bb4e-4027-8405-c8bfd10cb347","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53.07,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"32f3b390-2040-40e3-a4b3-bb33298ef2a3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":280.21,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"b2a07f0f-0ec9-46d4-b586-8905bb5ff9d1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:53:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":289.07,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/history?limit=1000","requestId":"717d3528-5feb-4204-8d07-9655a79260ec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/communication/whatsapp","navId":"1787572378744-607121","text":"Open WhatsApp setup","to":"/dashboard/communication/whatsapp"},"durationMs":927,"event":"NAV_PATH_CHANGE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787572378744-607121","to":"/dashboard/communication/whatsapp"},"durationMs":927,"event":"NAV_STALL","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787572378744-607121","to":"/dashboard/communication/whatsapp"},"durationMs":959,"event":"NAV_RENDER","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":468.5,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":483.4,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.52,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f638b479-a4ce-452f-a75c-baf2510c0fb8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":833.9,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/history"},"durationMs":858.5,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.61,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f33b23e4-b36a-4565-88d9-668e36161c70","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":70.08,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"aa32b002-04d8-43b2-bf7c-1e0efb1b62ce","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:53:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":463.4,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.04,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e38ce6bd-e782-4e13-b486-2d5a17853a14","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":52.61,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"1caf2a91-5c83-4b5b-b5de-009c05e31c1a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:53:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":659.8,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":34.81,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"af586a9d-0424-44b1-accb-e93d641d7f25","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r29:-trigger-settings","label":"Settings","name":null,"type":"button"},"durationMs":8,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.89,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"468653c1-961e-43f2-9c71-b36018316cd5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Setup WhatsApp","name":null,"type":null},"durationMs":26,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:19","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.26,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ea0edd9c-0e04-499e-b07a-01f00b153f06","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/whatsapp","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/whatsapp","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":52.92,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4486849b-9775-47ad-8f81-72d78fad5a02","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":65,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.54,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c6525f09-f845-4d1d-a015-bcf0ac050bd4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.29,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a64f3f9-2925-4b28-b006-d8590045a30b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:44","userId":null}
{"durationMs":39.95,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"46abcfe0-13e4-4dc1-87ab-b0528ed1f25b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:53:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.59,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"45577fdd-6d11-49e7-a1b7-7ff10a2f7dff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:53:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53.41,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"bf848b0e-b161-4eb8-aa3f-cfd7ae991357","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:53:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":67.31,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"710704d4-af91-479e-9f4f-e8584c4793f9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:53:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":162.99,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"5c72f116-bd46-4f76-9e21-ab5e2eae31f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":128.98,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"7a5f4683-2a9f-4fed-8ea7-c0f0531f7db3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:53:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":600.83,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"6a4e0575-7681-40fc-8c0a-f6640ce88051","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":296.83,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"855e3ef6-9e0b-4ea4-948a-5d16252d5296","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":541.1,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"5f9f215f-c039-46f0-941e-b950bb5df394","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":224.73,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"1e42e60d-ceda-4cc7-b142-0ed41c67023d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:53:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":474.46,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"7fa754ac-e3fe-4d69-91d0-171026bb3afa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":210.67,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"1efde823-1dce-4577-80de-9810d52cf8d6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:53:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":572.6,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":717.9,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":822.1,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":962.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":972.6,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:53:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.16,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d2d4cc73-2461-444b-983c-a8bcbb35bcc5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:53:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:54:00"}
{"durationMs":1.28,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5193e446-3b2f-4bb2-8bb3-c44e44ea60a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:54:02","userId":null}
{"durationMs":84.9,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"7c9f7cd0-6a3d-422a-b0d7-d3e8a1cfb348","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:54:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":454.12,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"30fc9abc-d7cf-4286-ad27-20972816ca58","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:54:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":419.73,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"adc937f3-3b20-4bac-92b4-f73dc09a3ecc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:54:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":429.08,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"fea099a5-3465-4ffd-8739-fc5733753519","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:54:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":553.48,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"58137c04-d428-4de3-ad74-82258392f80d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:54:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:54:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:54:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":206.88,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fa3f08ad-60e6-4ba7-9f38-78fc8746d512","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:54:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":865.88,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"f3702161-886f-4a44-b7c7-13e192f4895f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:54:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":791.32,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"b06b6f34-aeeb-4056-89a0-7868befc6e3d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:54:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":861.06,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"b41d268b-eb2f-409a-bcc4-cc0e30a1b3e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:54:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":875.64,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"9bf9b786-5077-46d9-92ce-d6990c14314a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:54:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":522.68,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"920a1e8c-5fd0-41b9-8afc-64e21abcbee2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:54:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":620.16,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"0f806e81-8132-4127-a8a6-d310c8139a8d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:54:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":839.62,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"54be1cf1-0a00-4fef-85ce-85369271fb58","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:54:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":715,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:54:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1104.1,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:54:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1106.9,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:54:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1133,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:54:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1272.2,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:54:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1443.8,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:54:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1447.8,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:54:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1485.6,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:54:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1547.1,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:54:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1548.1,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:54:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1549.1,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:54:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1550.4,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:54:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.26,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"96a8b613-b127-4933-a6f5-f924018014e8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:54:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1787572493516-642276","text":null},"durationMs":null,"event":"NAV_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:54:57","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.69,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4fe2bea0-e586-4237-ab6a-18f502dae809","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:54:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 14:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 14:55:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1f83852-85b1-49fb-8fc7-aa1094859fc1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:55:01","userId":null}
{"durationMs":81.44,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"347f22e5-9d56-45e8-a78b-cc8596573bdf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:55:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":107.65,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e8635bce-df09-4a73-8d12-37fca44f9866","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:55:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":79.21,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"6987a25d-cd47-412e-896f-8bd688a0df37","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:55:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":454,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:55:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":477.5,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:55:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":422.4,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:55:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.67,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4c2712b2-336c-449c-a80d-f5931c02b960","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:55:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.04,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"9712cf49-72fd-4bb0-850f-fec482ec6151","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:55:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/assessments/exams","navId":"1787572505202-346662","text":"Exams"},"durationMs":null,"event":"NAV_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:55:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/assessments/exams","navId":"1787572505202-346662","text":"Exams","to":"/dashboard/assessments/exams"},"durationMs":718,"event":"NAV_PATH_CHANGE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:55:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787572505202-346662","to":"/dashboard/assessments/exams"},"durationMs":718,"event":"NAV_STALL","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:55:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787572505202-346662","to":"/dashboard/assessments/exams"},"durationMs":793,"event":"NAV_RENDER","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:55:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.31,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5e6d7746-9175-40ba-882e-e98cd37559ac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:55:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":130.88,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"c46731e4-72f7-4e36-91e1-8e44dc9bfb69","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:55:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":153.25,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"88860051-0194-4d14-8052-2d21ce6c1e90","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:55:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":199.86,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10","requestId":"551efb9f-38df-4b3f-acf0-b3a6e90d419e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:55:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":71.16,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"35f661ef-0de4-457a-9a7f-157f41f12d30","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:55:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":479.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:55:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":626.4,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:55:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":646.4,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:55:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":647.8,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:55:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":395,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:55:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.17,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8619e04a-74e8-442a-b157-7f665bf645e4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:55:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Create Assessment","name":null,"type":null},"durationMs":109,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:55:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.35,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c8e96984-bb20-4481-ba79-6628d06319fc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:55:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"exam-category","label":"Select Category","name":null,"type":"button"},"durationMs":125,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:55:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":39.97,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f6162ac2-effd-460e-ba66-5e128e77c373","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:55:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"term","label":"Term 1 - 2025","name":null,"type":"button"},"durationMs":84,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:55:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.04,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6eb67302-edf0-4f3b-a879-2fa0cf4a9efd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:55:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"term","label":"Term 3 - 2025","name":null,"type":"button"},"durationMs":86,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:55:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.27,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"697e9d96-7d39-4ca6-86da-c1595a6706af","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:55:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"term","label":"Term 3 - 2025","name":null,"type":"button"},"durationMs":87,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:55:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.61,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"835f7b6f-6423-42e0-ab7e-d75194b7d004","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:55:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:56:00"}
{"data":{"id":"term","label":"Term 3 - 2025","name":null,"type":"button"},"durationMs":87,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:56:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.18,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ad658e2d-fd79-4d1e-af96-cb66918705af","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:56:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":74.02,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d496987c-a3f8-40b0-b396-29192f1c946d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:56:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.96,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"54da73bf-72bf-4cf9-8674-2b428fbb07cb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:56:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"term","label":"Term 3 - 2025","name":null,"type":"button"},"durationMs":89,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:56:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":29.58,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"144866e9-aad3-457d-803c-cf4c87fe64ce","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:56:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":525.2,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:56:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":622.5,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:56:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.27,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d029502e-c5a8-456a-a5b1-6949e4f6bd50","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:56:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"term","label":"Term 3 - 2025","name":null,"type":"button"},"durationMs":93,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:56:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.52,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d274c77b-5b97-4186-bf95-f148860e8b14","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:56:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"term","label":"Term 3 - 2025","name":null,"type":"button"},"durationMs":88,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:56:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.19,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"92e81fef-dd3c-4f3a-9eb9-60676ae04004","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:56:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"learning-area","label":"All Subjects","name":null,"type":"button"},"durationMs":103,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:56:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.37,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c8fc9558-dc00-4e54-b7a2-b6ecebcf8a9e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:56:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"stream","label":"All Streams","name":null,"type":"button"},"durationMs":99,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:56:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.16,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0fcfcf22-650e-4ef1-81b9-5d6a47b25091","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:56:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"stream","label":"Grade 1 - East","name":null,"type":"button"},"durationMs":100,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:56:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.3,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d96062b3-dcef-4d56-9f8e-b7bc1bc139e5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:56:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"stream","label":"Grade 1 - East","name":null,"type":"button"},"durationMs":103,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:56:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.63,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4908fc4b-5314-46e3-aa77-1fd969bf2bbc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:56:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"stream","label":"Grade 1 - East","name":null,"type":"button"},"durationMs":105,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:56:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0f132d63-b3b3-4cff-abcb-d9c2c6c8ba71","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:56:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:57:00"}
{"data":{"id":"publish","label":null,"name":null,"type":"button"},"durationMs":52,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:57:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.07,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"be402a16-5605-429f-8bc9-d4df85d91de0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:57:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":116.27,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/assessments","requestId":"89e53969-c379-4cbb-8496-dcb48ce56f85","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":201,"timestamp":"2026-08-24 14:57:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.58,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6c15ce3f-7e7d-45a1-af18-06bac08facb1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:57:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":78.79,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b14781c0-5b19-4f55-a6f3-a9138a061ba3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:57:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":143.03,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"852de487-39c7-4fcd-a1d4-5da93d8e8317","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:57:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Create Assessment","name":null,"type":null},"durationMs":6,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:57:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":201,"url":"/assessments"},"durationMs":546.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:57:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":584.5,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:57:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.39,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"addfda65-e8fc-4be8-b75e-2b4f762d7b17","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:57:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":918.3,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:57:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":765,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:57:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.75,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6a3cb6e0-e593-4863-8f46-00ac2039f25d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:57:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"10","name":null,"type":"button"},"durationMs":74,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:57:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":44.79,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"39a89737-6b7a-41e3-a145-a3823025c7fb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:57:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":114.5,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=20&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"648933bd-20f3-4466-9f9c-88fb8e168665","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:57:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":488.5,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:57:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"20","name":null,"type":"button"},"durationMs":78,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:57:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.64,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"09ecde05-70be-415d-99f6-98a43b290813","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:57:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.75,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=100&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"be5bcf4d-a83a-493e-9ce8-b15d273066f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:57:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":434,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:57:36","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.76,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0a764add-496d-4809-a6d2-7b449d3bc7bc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:57:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Term 1 — 2025","name":null,"type":"button"},"durationMs":75,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:57:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.56,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fbea62fe-b4d7-4a43-84b9-8ed3754cc173","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:57:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":92.45,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=100&termId=cmp8gtpmv00da8bcnk5rsmytz","requestId":"43dd771d-11c3-485b-8941-4f1c2fd27c2c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:57:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":830.3,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:57:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.26,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"223268e0-4176-43b3-832d-a987e1d150e9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:57:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:58:00"}
{"durationMs":54.15,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"9d62f97f-36d5-4a3c-b9ae-bcf46e95a1d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":29.84,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"3b7a4369-decb-44de-a4c1-81026c71f64e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.78,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"3358327f-bb78-4952-b3e7-8b6aa96d26ac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":280.47,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/teacher-assignments","requestId":"e94c9640-d057-43c3-b30e-92175a1195b7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":211.28,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"92ac0e8f-6737-4ede-a980-829f56ea0a4e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:58:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":9,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","href":null,"navId":null,"text":null,"to":"/dashboard/academics/cbc-grades"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","navId":null,"to":"/dashboard/academics/cbc-grades"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.53,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3c077088-23d3-4f31-b09f-432b41130d46","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":278.32,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"67864948-8755-48e8-a05d-3039ae374a30","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:58:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":296.49,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?limit=300&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"4cc87123-f071-4435-aefa-3de9e4e45a1a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":400,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?limit=300","requestId":"90092e92-fb68-43fd-bdde-6670577660d5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":194.62,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ff26ec1a-261f-4d66-a30f-9b8f28a4c527","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:58:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":402.09,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/teacher-assignments?academicYearId=cmp8gtpm300d48bcnc9mas3i7&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"e10aa736-1910-49a3-95e6-63437bc3132c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":489.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":583.4,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":733.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments/teacher-assignments"},"durationMs":1212.5,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":1216.2,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.98,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0bea074d-11d9-48ae-abeb-fb02682a8675","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":104.64,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/1bc4c141-7909-4356-9f42-2b08fdc4fb8d/results","requestId":"c3b7da36-04a0-44fc-9233-3237422d874b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":1350.1,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":1398.3,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1344.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":942.9,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments/teacher-assignments"},"durationMs":1433.1,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments/1bc4c141-7909-4356-9f42-2b08fdc4fb8d/results"},"durationMs":679.1,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.42,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d6278154-6e28-4261-a609-ab83c708309e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":72.49,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"3c7fd3b4-8bdd-4788-8f5f-7745e4a9cdbe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.41,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"4e653ef9-1a55-46cc-8338-4e0f2075b4d0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:58:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":42.02,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"55980ea6-c177-42a8-853e-20ee58091def","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":29.23,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"f22bc467-ac3a-4703-a76d-bea09bc80b12","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":54.28,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"bd60c3f3-158d-40b6-b1d1-bee12aea7060","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1195.9,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":1436.3,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":1473.5,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":1498.5,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1730.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.38,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8c666db1-2b59-4629-ad1e-3f7e73dd108d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.42,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"a4336936-698d-474d-9707-a54143114876","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:58:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.98,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"6d0f2a06-914b-45e7-830b-c65a1ec6af21","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":33.88,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"d95dc732-61f5-4693-b3f6-ebbd3f502001","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":75.58,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10","requestId":"59ff8393-3cf1-4d07-b4e8-bb399b432f20","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/cbc-grades","href":null,"navId":null,"text":null,"to":"/dashboard/assessments/exams"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/cbc-grades","navId":null,"to":"/dashboard/assessments/exams"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":406.8,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":421.2,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":472.3,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":546.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:58:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.85,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f4c32341-eb77-4077-83b6-e9d630503781","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:58:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 14:59:00"}
{"durationMs":78.22,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f769b95a-4d01-43f7-8792-6dfa664a0ab7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:59:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":98.18,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b9f93e77-bb4d-4613-8734-d3604d1944a7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:59:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":487.6,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":500.2,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Term 1 — 2025","name":null,"type":"button"},"durationMs":77,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.91,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9cd5c3b4-e4e3-4ad2-80bd-0c210bf25db7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":76.96,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10&termId=cmp8gtpmv00da8bcnk5rsmytz","requestId":"dd8c4587-e27e-4c4d-8893-4b37cd7f7d79","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":486,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.28,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d64e1ddb-fc70-456d-8f5e-1e470df40f36","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":95.59,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"f2bb6c32-f68f-4c26-bc62-5fff2be65dab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":480.31,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"8d9c2bdd-c64c-4f35-8966-3e7286f0a3b1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":232.64,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"46159377-da23-44d0-b8d2-32c078710b23","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":568.84,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"e0fa8a3e-aefe-433b-b56b-83cc1b2cc0f5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":555.95,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"1bf2c42e-7a18-46d0-8829-57d80390c9ad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":359.4,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"357b01dc-961e-45e0-bfa6-2507d90c03db","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":74.18,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"28ce71ae-89e8-4004-be93-0a85b3abd9ae","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:19","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:19","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":528,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:19","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":44.97,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8186f265-699d-4534-86c1-20e32f495b5f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":96.39,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"be2914a3-30d0-4ef6-a081-46cc47fac31d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":957.8,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1073.6,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1078.8,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1122.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1124.1,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1291.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1350.2,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.33,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4e7eac65-16b0-4704-8008-e3c9b53df3f8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.93,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a183b436-3652-4477-8680-eb9c3374ae91","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:46","userId":null}
{"durationMs":55.14,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"475d315d-a610-4f19-8480-fa7cbcea3b47","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":79.86,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d2aca4e4-d6f5-4694-b274-18c460fcb8d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:59:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":34.16,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"71f7d1c2-0b08-49e4-95c4-4f4ce837a299","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":102.38,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c8eff96d-fbef-473c-8d4d-d5e0806780a2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:59:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":92.42,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"acf3a7e0-c2b7-4c14-a065-253ad7431eb7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:59:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":103.79,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"23bdf121-9584-40bc-bcd2-ac429cce527e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":332.91,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"83c59307-4952-40fd-8737-9d24a839f0f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:59:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":424.99,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"9f29d284-6489-4d0a-a8ad-e36787962165","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":497.49,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"02cba80c-286b-4db8-93cd-7e66cd26ddb1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":476.91,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"91961101-47cb-44f2-b3a2-9121071e7bc6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":459.08,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"065f2c30-66d5-4e5c-9cd2-de6a383e1e2b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:59:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":106.67,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"3aad1ed1-cc54-47c4-8a95-cee7cb12c1ba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 14:59:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":502.96,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"3dea28d4-78a0-4eec-84d3-99ad1735c44f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":401.4,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":626.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":690,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":708.6,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":460.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.25,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2bf5198f-81c6-4ed8-adc9-b708d6a159f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":810.3,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":867.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":890.5,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":902.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1052.6,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1054,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1055.1,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 14:59:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.17,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ad132ee1-eced-4535-8b0d-cfd882cc0cd3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 14:59:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 15:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 15:00:00","totalConnections":1}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":73,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:01","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"606acc85-125a-4eac-ad9f-2211e4bc1964","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b0aee579-2a34-49e5-823b-ed97247cb9c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:02","userId":null}
{"durationMs":47.23,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"66861461-8139-425f-b318-11b3f4a289e4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/assessments/exams","navId":"1787572801453-189893","text":"Exams"},"durationMs":null,"event":"NAV_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/assessments/exams","navId":"1787572801453-189893","text":"Exams","to":"/dashboard/assessments/exams"},"durationMs":721,"event":"NAV_PATH_CHANGE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787572801453-189893","to":"/dashboard/assessments/exams"},"durationMs":721,"event":"NAV_STALL","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787572801453-189893","to":"/dashboard/assessments/exams"},"durationMs":784,"event":"NAV_RENDER","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.42,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3db9e993-49dc-43cc-97a8-714172ea8d3c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":93.43,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"514ed386-8061-4db2-9ad4-88b1c45f67b3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":71.66,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"fb684d6a-7f20-4c6e-ab75-2b1285890cbc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":184.51,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10","requestId":"8294f55d-426c-4742-9db6-efb66f2e053e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":93.19,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"234b90f1-2697-4717-ab2d-d26af98219d0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":509.9,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":537.5,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":538.8,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":556.1,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":425,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.16,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ddfc8c66-e6c7-4a29-b7a8-a1e62efba073","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Term 1 — 2025","name":null,"type":"button"},"durationMs":105,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:19","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.56,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ef038b1b-9e6e-4867-ae33-db90be8593c6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":85.08,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10&termId=cmp8gtpmv00da8bcnk5rsmytz","requestId":"9c7097b0-aea3-416d-8460-86d972b6fc61","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":703.5,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.12,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"464a3159-ff97-4e60-b3c6-c029e0267c6e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"All Types","name":null,"type":"button"},"durationMs":88,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.9,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d6ae1227-a877-4399-9a75-bc02a89f8f16","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":78.46,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10&termId=cmp8gtpmv00da8bcnk5rsmytz&type=CAT","requestId":"3adabf8b-cae7-4fa1-8d4b-3b1a33a7ec07","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":694.8,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.18,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"44978a58-c39e-4f00-8a3d-6ad57e5319ed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Create Assessment","name":null,"type":null},"durationMs":91,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.16,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0a06a185-9f54-4767-8f3b-90a9eac19c3f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.17,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8ce8aa06-571e-4d3c-afcd-6b555d2c92f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":81.24,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"007d4dfe-ba52-44eb-964c-975cd84f601b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":174.6,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"8431c34b-902b-455a-8c91-971a55458b4d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":601.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":588.8,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:00:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.36,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ee67ee0f-cd01-42c6-8794-56775290db97","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:00:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:01:00"}
{"durationMs":29,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"ec9650c7-d9d5-48ae-8cfb-08e7f2aca7e4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 15:01:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.59,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"1ced067e-f5e0-4995-9d1a-8bcd209b2bd7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:01:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.09,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"a25f5e4f-8c1a-4541-b6d3-7a38f3b31fe5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:01:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/assessments/exams","navId":"1787572861919-486400","text":"Exams"},"durationMs":null,"event":"NAV_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/assessments/exams","navId":"1787572861919-486400","text":"Exams","to":"/dashboard/assessments/exams"},"durationMs":92,"event":"NAV_PATH_CHANGE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787572861919-486400","to":"/dashboard/assessments/exams"},"durationMs":199,"event":"NAV_RENDER","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.5,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1d8c593f-f9bc-44dc-b288-7214583813ad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:01:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":713.1,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":717.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":821.4,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.23,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"08fd0ec5-d85f-4664-8561-c8ad617862e2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:01:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Term 1 — 2025","name":null,"type":"button"},"durationMs":74,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.88,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0a08384e-dbde-4b66-bdb5-9ff28435dee3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:01:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":15,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","href":null,"navId":null,"text":null,"to":"/dashboard/academics/cbc-grades"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","navId":null,"to":"/dashboard/academics/cbc-grades"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.33,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9ff6e85d-00e4-4abc-8a48-66cb79ae78ae","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:01:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.32,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"52e3caea-5a03-4293-8c52-795526695aa4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:01:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"ca835c82-8051-4cd8-960c-55db33bebe17","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 15:01:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.84,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"cb0deb5d-49a3-4cc3-b1a4-67b5b7a1a42b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:01:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.46,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"7b61af50-f737-4874-9b80-d0bca4608a78","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:01:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":89.87,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/teacher-assignments","requestId":"6d909611-8fd4-4a62-bafc-5a117953535d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:01:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":128.38,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?limit=300","requestId":"97ad3732-7805-4225-b3fb-8c7b1bed64c4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:01:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r6g:-trigger-manage-results","label":"Manage Results","name":null,"type":"button"},"durationMs":9,"event":"UI_CLICK","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":542.5,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":548.4,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":597.6,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":677.5,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.05,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"33d6ac7c-6af5-4d71-9edb-993c67e9d749","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:01:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":316.61,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/teacher-assignments?academicYearId=cmp8gtpm300d48bcnc9mas3i7&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"fc477fdf-5ce9-4894-a96e-e0d22f80d6d7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:01:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":329.65,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?limit=300&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"36eee6c3-17d5-4ce0-89ad-30a5ed4cce51","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:01:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":128.23,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/1bc4c141-7909-4356-9f42-2b08fdc4fb8d/results","requestId":"0e1f4dbe-6436-495e-9e8f-c59717bdf4df","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:01:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments/teacher-assignments"},"durationMs":827.2,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":947.5,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments/teacher-assignments"},"durationMs":1133.7,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":1169.5,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.34,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"723291a2-dc13-4bd7-9b00-969833b1e32d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:01:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments/1bc4c141-7909-4356-9f42-2b08fdc4fb8d/results"},"durationMs":483.8,"event":"API_RESPONSE","ip":"196.96.238.183","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 15:01:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.61,"ip":"196.96.238.183","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fc5d07d9-8ece-43fa-8687-78af6d1faea6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:01:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 15:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 15:05:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"48ab2eef-3261-4ddb-afc7-492e300e96f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 15:10:00","totalConnections":1}
{"durationMs":1.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6254a554-8363-423f-8841-936db2d23744","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 15:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 15:15:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"37ca3243-b617-47f0-b873-bcad8efb7b07","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 15:20:00","totalConnections":1}
{"durationMs":1.68,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3de3c14d-e2bc-4b0d-9507-a02e4ff90ea1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 15:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 15:25:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6d29eb4e-024b-4058-979f-84923a4835de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 15:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:30:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 15:30:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 15:30:01","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"829c8cbd-d9ff-454d-a2a3-936dad430df6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 15:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 15:35:00","totalConnections":1}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6dc0400f-198a-463a-9fa6-ec43f09e3b5b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 15:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 15:40:00","totalConnections":1}
{"durationMs":1.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cac7b167-0cde-4a9d-a864-03fb10196070","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 15:45:00","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d94ad4da-e3ed-4a29-8658-c00f1e17a3cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 15:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 15:50:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84e6143a-474c-4147-9c45-c88a50f17d9f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 15:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 15:55:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e4da972b-a170-4dc7-bac1-274f8edb4b68","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 15:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 15:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 16:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 16:00:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6fa0c548-e7e9-4a9a-aacb-1f290f2f88e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 16:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 16:05:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e153de00-8541-4b2c-936b-9e196570473f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 16:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 16:10:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fcf9e41d-fa2f-4aca-a393-5199f6728dbe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 16:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 16:15:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"39b17eaa-e6a8-42bb-affa-6e2cf51d6461","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 16:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 16:20:00","totalConnections":1}
{"durationMs":1.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"db27d751-a886-473b-8f3d-f219f34340b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 16:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 16:25:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cc23fb6a-dc69-408c-92c4-7264e64df13b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 16:30:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5f03ed11-766b-4b43-afb4-b5190e8cee29","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:31:00"}
{"durationMs":2.24,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"efed39df-5de6-4da2-a55d-4484344c12e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:10","userId":null}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:31:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:31:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":3.2,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e1367a8b-1cf5-4f53-bfa8-97b9f8e86b45","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:11","userId":null}
{"durationMs":2.35,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6eee54ab-f1e7-4b42-9fdd-6eef0569dc26","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 16:31:12","userId":null}
{"durationMs":1.74,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"82797c00-439c-4169-979f-96858588538d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 16:31:12","userId":null}
{"durationMs":1.31,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"648661b8-571f-4061-b364-e64dd912b352","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 16:31:12","userId":null}
{"durationMs":1.54,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"77c74b4b-c6ac-4226-82eb-6caeabd2f62c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 16:31:12","userId":null}
{"durationMs":32.18,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"decc4307-8c25-435e-ac9c-109b42cd730c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:12","userId":null}
{"durationMs":1.11,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"5d3ffc98-c19a-485a-b1d5-cb46747b9df8","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 16:31:12","userId":null}
{"durationMs":0.92,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"c34508f0-9fc7-4706-b3eb-fb758c5efdd8","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 16:31:12","userId":null}
{"durationMs":46.27,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"ae9d8398-9d83-4a45-a81e-1f09e833fd16","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:13","userId":null}
{"durationMs":74.53,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"574c933c-503c-4c00-923a-b4e4a78b809e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:13","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":95.99,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ef0f017a-a489-40d0-90e5-9d93010c3366","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:13","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":104.19,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"cf7786ff-ff91-4e3b-9cb2-c02ca3c7fa23","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:13","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":110.27,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"eaa952a0-3a6a-44d7-8a34-b0197a774fcd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:13","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":534.2,"event":"API_ERROR","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":538.8,"event":"API_ERROR","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":540.5,"event":"API_ERROR","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":548.3,"event":"API_ERROR","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/guardian"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","navId":null,"to":"/guardian"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/dashboard"},"durationMs":512.3,"event":"API_ERROR","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/school-info"},"durationMs":516.4,"event":"API_ERROR","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":31.61,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2f911707-e476-4ea4-86a5-2aefe67df783","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:13","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":321.39,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"796e539a-0581-4002-b292-1a8748ebb46c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:13","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":43.98,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"ab36f183-22a7-43eb-b867-d862b2313e11","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:13","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":96,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"d2349e8a-8fca-4407-8f8c-deed6553cc63","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:14","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":491.8,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":512.6,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":516.4,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":519.9,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":710.8,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":367.2,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":430.9,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.18,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6bf930b8-e451-41be-835d-90a2cb1f4c9c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31: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":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:31:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/guardian","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:31:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.18,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"006f6131-2e6e-4968-88e7-3329663b3532","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:18","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":21,"event":"UI_CLICK","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:31:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.23,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6146890a-fa64-4737-b7f6-74ea76166214","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:26","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":38,"event":"UI_CLICK","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:31:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.09,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"55b8d5fa-1e60-40aa-bcc9-9324b464a695","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:27","userId":null}
{"durationMs":650.81,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"bffa88af-714b-459d-a5bd-bafaab1d0334","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:27","userId":null}
{"durationMs":54.43,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"692628bf-668a-4f46-a43b-50de26d4425e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.54,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"ab4a1af3-ba00-485f-b6b9-c5cc4bd7cc8e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 16:31:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":82.09,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"af23abb3-d03c-463f-929d-c1661731efc6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 16:31:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":81.87,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"3b162452-4412-40f1-b57d-6375a5710f09","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 16:31:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1733.3,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.55,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"565f0e12-bb98-4650-bbf0-4a5f509db9d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":84.49,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"4a2bb31d-bc66-4836-a9b7-eb39db0c90b7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 16:31:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.98,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"65e5adf6-50e1-40cd-8440-25449a9a8ccc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":37,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"34967521-3564-4f26-93ab-4b2a0d811ced","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.07,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"56285443-e961-4771-805d-d9b7b30aa54f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":33.41,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"d597e752-20c5-4498-aaa1-b0150214a7e6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.47,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"9a77ac22-5ab0-40bb-9c93-3458b6ecb03f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":71.61,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"b8a1ef3f-f8de-450f-add4-78aefc0ac07d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":72.27,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"ff8a164c-2bc7-4e42-a604-0b7a4576352f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":99.24,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"a3e5c5af-481b-471c-bf8d-549e5430b569","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":100.56,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"87a72bdb-631c-444a-8248-ef5daeef9ee7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":32.76,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"f9309e33-dfef-45c3-a8cc-b0f63846c1e4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.31,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"7e372500-cde7-4805-bb2f-13ecfeee07d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":1296,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1267.7,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1267.9,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1269,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1355.3,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":432.6,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.14,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d2763cc2-0b1d-4eef-879a-208e1925c0b2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":82.42,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"a56e895f-66b8-41d6-b0af-b7fa13a6fc2c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":79.48,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"81650b68-fabd-4469-8b23-bc8dc3aa6bef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":876.5,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":882.8,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1353.1,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":1357.6,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1487,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1504.5,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1892.7,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1919.8,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":2138.2,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":2209.3,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":3091.2,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":3138.2,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":21,"event":"UI_CLICK","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.32,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b9d1397c-5f46-48a8-8f42-fec2f8965f96","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":110,"event":"UI_CLICK","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:31:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.98,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a282c64c-1c1e-4ceb-b3ea-4be5d6971fff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:31:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:32:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":96,"event":"UI_CLICK","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:32:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.75,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ae89f703-1bc5-4f5f-83bc-f9177f6eb9d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:32:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1787578334650-323507","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:32:19","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.49,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bdcc7f5e-2fa1-463f-a7e7-136d5a441c8a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:32:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":117.62,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"054b9748-3d4a-40f5-a1b4-f3bd377c04b0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:32:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":119.66,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"2fcb4dc3-d1ce-43f6-a27c-e2ed896c44cf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:32:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":44.56,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"214f082b-04d6-472d-8bb3-58df0f13cab1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:32:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/students","navId":"1787578334650-323507","text":"Students","to":"/dashboard/students"},"durationMs":2748,"event":"NAV_PATH_CHANGE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:32:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787578334650-323507","to":"/dashboard/students"},"durationMs":2748,"event":"NAV_STALL","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:32:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787578334650-323507","to":"/dashboard/students"},"durationMs":2848,"event":"NAV_RENDER","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:32:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":453.4,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:32:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":754.9,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:32:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.19,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"989241b3-fa36-4c53-be21-ded5ce2658e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:32:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":961.6,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:32:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.02,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"08abb277-c9f6-4164-8e7a-b346cb0b34e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:32:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.02,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a00aa8cc-e550-4450-8098-48be2eb8cb75","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 16:32:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.98,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"6b2073a3-9fdb-4a88-9c21-fbcfd2a2c1c6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 16:32:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":381.7,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:32:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":663.8,"event":"API_RESPONSE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 16:32:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.19,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"944e45a2-d48c-4b60-a6b1-bd74f0387bb6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:32:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:32:36","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/dashboard/students","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:32:36","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.83,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"229af2cd-44bd-49f2-85ab-f4dbe4ee505e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:32:36","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":23,"event":"UI_CLICK","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:32:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.15,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"11fbcb59-68f8-485e-b711-008ec936826b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:32:45","userId":null}
{"durationMs":536.91,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/platform/auth/login","requestId":"7903c181-30ad-40ed-9c50-c666e2266711","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:32:49","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":31,"event":"UI_CLICK","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:32:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.94,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9d13368a-b6fe-47b6-b889-4930b3caaeed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:32:49","userId":null}
{"durationMs":56.98,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?limit=100","requestId":"580458ee-0f87-45df-a32c-8bdda7addd62","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:32:50","userId":null}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/platform/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:32:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/login","navId":null,"to":"/platform/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:32:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.46,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4156fa3c-7684-45e6-ad34-1969aedd2cd6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:32:51","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":11,"event":"UI_CLICK","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:32:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.25,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ada96019-0094-4249-9f62-54f45a77feed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:32:53","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:33:00"}
{"durationMs":44.17,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?page=1&limit=20","requestId":"4989a3fd-0521-430f-9573-bf3af064b149","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:11","userId":null}
{"data":{"href":"/platform/schools","navId":"1787578386344-471875","text":"View All"},"durationMs":null,"event":"NAV_CLICK","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Navigation click","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/dashboard","href":"/platform/schools","navId":"1787578386344-471875","text":"View All","to":"/platform/schools"},"durationMs":501,"event":"NAV_PATH_CHANGE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/dashboard","navId":"1787578386344-471875","to":"/platform/schools"},"durationMs":501,"event":"NAV_STALL","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/dashboard","navId":"1787578386344-471875","to":"/platform/schools"},"durationMs":531,"event":"NAV_RENDER","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":3.05,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e8aa70d2-8c8f-4ccf-95a5-288604936912","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:11","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":65,"event":"UI_CLICK","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":3.38,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"67fb7452-b05f-40e5-a36c-10ea87ab122f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:29","userId":null}
{"durationMs":18.39,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/users?search=&role=","requestId":"cad065e7-b954-45fd-ac20-44f7f926b72c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:34","userId":null}
{"data":{"href":"/platform/users","navId":"1787578409511-923103","text":"Platform Users"},"durationMs":null,"event":"NAV_CLICK","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Navigation click","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools","href":"/platform/users","navId":"1787578409511-923103","text":"Platform Users","to":"/platform/users"},"durationMs":485,"event":"NAV_PATH_CHANGE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/users","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools","navId":"1787578409511-923103","to":"/platform/users"},"durationMs":518,"event":"NAV_RENDER","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/users","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":3.2,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"657889c3-3249-4e0b-8735-4d6d2d62f21c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:34","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":41,"event":"UI_CLICK","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/users","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.11,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"17f886eb-fadf-4b47-a79d-0aeed4799802","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:38","userId":null}
{"durationMs":28.86,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/billing-settings","requestId":"09381b2c-04d6-43e8-ac71-ddf515f2e799","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:39","userId":null}
{"durationMs":39.33,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/plans","requestId":"54771c3e-9cc6-43fd-b248-4c94fbaacfa7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:39","userId":null}
{"data":{"href":"/platform/plans","navId":"1787578414101-654626","text":"Plans & Billing"},"durationMs":null,"event":"NAV_CLICK","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Navigation click","path":"/platform/users","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/users","href":"/platform/plans","navId":"1787578414101-654626","text":"Plans & Billing","to":"/platform/plans"},"durationMs":757,"event":"NAV_PATH_CHANGE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/plans","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/users","navId":"1787578414101-654626","to":"/platform/plans"},"durationMs":757,"event":"NAV_STALL","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/platform/plans","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/users","navId":"1787578414101-654626","to":"/platform/plans"},"durationMs":769,"event":"NAV_RENDER","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/plans","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.38,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4a80f9f4-e6e9-4676-8f35-24ff920d8e57","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:39","userId":null}
{"durationMs":56.3,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/invoices?limit=100","requestId":"0644a0e6-7c1c-4bc4-ba1c-cc64b55a2bc8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:39","userId":null}
{"durationMs":44.38,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/payments?limit=100","requestId":"2f6e5973-ddc0-4bba-981e-5d1205c10a12","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:39","userId":null}
{"durationMs":67.54,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/modules","requestId":"a439fb9b-7f98-4cab-9356-ab4787fb609f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:39","userId":null}
{"durationMs":95.97,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?limit=200","requestId":"969d2ca6-b66b-4689-ad2b-5758f31573e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:39","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":44,"event":"UI_CLICK","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/plans","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":0.95,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8fe37fdb-6e6f-4234-8d96-f8fbb1c2edde","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:51","userId":null}
{"durationMs":41.08,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?page=1&limit=20","requestId":"f25d7840-3fd2-4089-8c65-dff6c7d7b120","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-08-24 16:33:52","userId":null}
{"data":{"href":"/platform/schools","navId":"1787578428353-401257","text":"Schools (Tenants)"},"durationMs":null,"event":"NAV_CLICK","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Navigation click","path":"/platform/plans","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/plans","href":"/platform/schools","navId":"1787578428353-401257","text":"Schools (Tenants)","to":"/platform/schools"},"durationMs":109,"event":"NAV_PATH_CHANGE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/plans","navId":"1787578428353-401257","to":"/platform/schools"},"durationMs":142,"event":"NAV_RENDER","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.9,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"54efbb22-0a44-4f8e-8b4d-7984458370c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:53","userId":null}
{"durationMs":20.8,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/187335b9-637a-44a8-bcad-4ba1f06c3789/usage","requestId":"c8f8f7a0-7ab5-4e80-872f-14c28911d904","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:58","userId":null}
{"durationMs":38.32,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/187335b9-637a-44a8-bcad-4ba1f06c3789/features","requestId":"3825dc95-0774-4fde-97b5-161621b37a5c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:58","userId":null}
{"durationMs":80.54,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/187335b9-637a-44a8-bcad-4ba1f06c3789/details","requestId":"26154abf-5f47-443f-9fb1-99867bb0a77c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:58","userId":null}
{"data":{"id":null,"label":"View","name":null,"type":null},"durationMs":9,"event":"UI_CLICK","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools","href":null,"navId":null,"text":null,"to":"/platform/schools/187335b9-637a-44a8-bcad-4ba1f06c3789"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/schools/187335b9-637a-44a8-bcad-4ba1f06c3789","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools","navId":null,"to":"/platform/schools/187335b9-637a-44a8-bcad-4ba1f06c3789"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/schools/187335b9-637a-44a8-bcad-4ba1f06c3789","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:33:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":3.95,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a8ffa599-add2-4bff-98d9-5556679803c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:33:58","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:34:00"}
{"data":{"from":"/platform/schools/187335b9-637a-44a8-bcad-4ba1f06c3789","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:34:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools/187335b9-637a-44a8-bcad-4ba1f06c3789","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.128.160","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-24 16:34:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.53,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c43b2df2-85aa-4cd5-a61c-18bc321d422d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:34:06","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 16:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 16:35:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9429fb0f-99be-4151-bf27-976f878c60e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 16:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 16:40:00","totalConnections":1}
{"durationMs":1.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2809462c-b6c4-4f75-b092-6068d411c1fd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 16:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 16:45:00","totalConnections":1}
{"durationMs":1.61,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70c03df9-930e-4dd6-b971-b9f156719b1d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:45:01","userId":null}
{"durationMs":2.34,"ip":"196.96.128.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a97f264-3c61-49d0-bc4e-e7547a20cb3e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:45:43","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 16:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 16:50:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"482fdaa1-13b3-4d1a-887a-bcddf6fabfde","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 16:55:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5275b7c1-243e-4093-88cc-f9f1b8847fa7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 16:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 17:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 17:00:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"960817a3-3065-4b48-982b-c4c4a3e80da5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 17:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 17:05:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c2ebf94d-767d-4666-8ca2-d455c6859439","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 17:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 17:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 17:10:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4c4890e4-8fdc-46f8-9eff-f9a66f427062","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 17:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 17:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 17:15:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 17:15:01","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e2ded91-890c-46a1-a57b-a1924028787e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 17:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 17:20:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6584bbe6-b3e2-4164-bd46-1ca136a09df0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 17:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 17:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 17:25:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b994807e-7a91-40f0-baf8-7a3f9ae37787","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 17:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 17:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 17:30:00","totalConnections":1}
{"durationMs":1.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"164984a0-6929-40ca-a7cb-11331c9df761","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 17:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 17:35:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bcc4c8fd-72e2-479b-9475-d7e27f77c6cf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 17:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 17:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 17:40:00","totalConnections":1}
{"durationMs":2.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"45aedf42-a7ae-4b95-acf8-a2273aa18575","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 17:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:43:00"}
{"durationMs":4.82,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"0c0d55a6-22e6-495b-ba4c-f3c12b40388a","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 17:43:42","userId":null}
{"durationMs":3.33,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/payment-methods","requestId":"b93e2913-282c-40e7-b72b-3a5003168beb","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 17:43:42","userId":null}
{"durationMs":1.25,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"da183b34-5b21-4df1-a306-fd0da4c094f5","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 17:43:42","userId":null}
{"durationMs":1.24,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"68c60f3d-e0e4-47fc-8bfc-c4c3457ba95d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 17:43:42","userId":null}
{"durationMs":1.19,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"0d66deb7-3800-4a64-a3c0-f209eb85f666","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 17:43:42","userId":null}
{"durationMs":3.4,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d884a3b9-2625-48da-aec2-690a185dacdd","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 17:43:43","userId":null}
{"durationMs":2.27,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d6f912de-b97b-4f31-a043-79ceea79346f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 17:43:43","userId":null}
{"durationMs":1.51,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"4e44e450-12ce-412d-8272-356bf6aace4e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 17:43:43","userId":null}
{"durationMs":30.5,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"7bbb8e83-ab24-4476-91f1-290007f301ab","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 17:43:43","userId":null}
{"durationMs":93.28,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"115be76f-a96e-4b01-ac9d-4f2d5a5d945d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 17:43:44","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":193.94,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b9620b48-2c4c-4ace-aab2-6daf1ef0532d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 17:43:44","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":192.34,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"699d5660-abe2-41b0-85f0-ca5806423252","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 17:43:44","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":214.08,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"f34de415-b2c5-4da0-97f8-44af7f2e94be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 17:43:44","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":247.68,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/payment-methods","requestId":"685d3865-3edb-42cf-b183-1c040ec4aa45","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 17:43:44","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":333.44,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"678dc2c8-cf04-444d-aadb-c6af432e27a0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 17:43:44","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":498.82,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"2e46a284-cae9-4dae-a7ec-a97c5003d7ba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 17:43:44","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":1846.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-08-24 17:43:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/payment-methods"},"durationMs":1851.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-08-24 17:43:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/dashboard"},"durationMs":1853.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-08-24 17:43:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":1853.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-08-24 17:43:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":1854.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-08-24 17:43:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":2526.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-08-24 17:43:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":2529,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 17:43:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/school-info"},"durationMs":2530.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-08-24 17:43:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":8.24,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4c4d82c6-8664-4107-ae9e-d5077702cdc4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 17:43:45","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":51.79,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"4981fea5-a0f2-49c8-bb51-6c63eb19b3a6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 17:43:45","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":443.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-08-24 17:43:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":559.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-08-24 17:43:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":561.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-08-24 17:43:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":571.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-08-24 17:43:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/payment-methods"},"durationMs":581.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-08-24 17:43:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":674.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-08-24 17:43:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":957.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-08-24 17:43:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1462.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-08-24 17:43:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":14.86,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"262cf7e3-b7fd-4d54-910c-997afd6c975a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 17:43:46","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 17:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 17:45:00","totalConnections":1}
{"durationMs":1.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4eca38f4-3435-4602-90e1-f83a01eac537","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 17:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 17:50:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f8a3ec7-3955-4104-b201-851512688f8e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 17:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 17:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 17:55:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"26bd24d9-81fa-43ee-99f8-54e43cbd1b0e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 17:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 18:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 18:00:00","totalConnections":1}
{"durationMs":1.67,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"232ff341-affb-4c6a-bc56-e19d45ca7a1b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:01:00"}
{"durationMs":1.5,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"828d8f9d-19e1-4819-9fa3-5150f591b0d0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:01:39","userId":null}
{"durationMs":4.01,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"cec855ae-fe0a-4cd5-af9a-2dfe6428189b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 18:01:39","userId":null}
{"durationMs":3.05,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"2f188e72-8c60-4eb8-a6d7-2ed3ac1dc6ca","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 18:01:39","userId":null}
{"durationMs":185.97,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"75fe4450-edee-40df-baad-e4b6aba659aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:01:39","userId":null}
{"durationMs":1.77,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"2a884ad9-7f94-4870-b2a7-f52194085e13","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 18:01:39","userId":null}
{"durationMs":1.39,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"8a55c569-19ba-4511-801f-973082fa8101","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 18:01:39","userId":null}
{"durationMs":1.27,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d30750bc-52f8-4dd9-bfcb-907dd7165ba2","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 18:01:39","userId":null}
{"durationMs":0.96,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"959f7d39-7f1c-4fcc-b850-da5d947c6635","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 18:01:39","userId":null}
{"durationMs":0.94,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"07f07077-70c0-4699-b7c6-16f07b13e95a","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 18:01:39","userId":null}
{"durationMs":48.81,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"7a6a7ded-f63b-4989-ba6c-25989edbfa4b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:01:40","userId":null}
{"durationMs":366.01,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"a7945078-2164-4d30-964f-f23b040a1894","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:01:40","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":442.24,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"f82bd004-c70b-4b33-9e8f-292867e088fe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:01:40","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/dashboard"},"durationMs":339.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-08-24 18:01:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/school-info"},"durationMs":347.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-08-24 18:01:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":335.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-08-24 18:01:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":337.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-08-24 18:01:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":340.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-08-24 18:01:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":342.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-08-24 18:01:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":364.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-08-24 18:01:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":13.1,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3c09cbab-2de2-481a-9e0f-52a61e84c510","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:01:40","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":46.93,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"617295a2-a50b-4042-b990-8621137b6b7d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:01:40","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":88.02,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"5377f677-6e46-4660-b564-5636f86534d6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:01:40","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":93.27,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ad6b5c1e-a391-4431-8f35-373488c4a0da","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:01:40","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":99.47,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"5c6f6402-9bd2-48f2-a046-8ca27960c89c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:01:40","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":146,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"7a9b04ee-3083-481f-b049-5c50ec56b73a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:01:40","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":56.34,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/payment-methods","requestId":"d6975975-286e-4a14-8703-9135241a264b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:01:41","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":699,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 18:01:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":802.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-08-24 18:01:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":394.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-08-24 18:01:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":430.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-08-24 18:01:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":433.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-08-24 18:01:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":437.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-08-24 18:01:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":484.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-08-24 18:01:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/payment-methods"},"durationMs":441.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-08-24 18:01:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":6.68,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c5ada574-5cbc-469f-a959-079a556b0e9d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:01:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:04:00"}
{"durationMs":75.59,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9f1c7316-d3bc-43f0-9ef1-257f3857bd10","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:04:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":83.18,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a5c42bc3-eb81-4b09-a0eb-0b0a56bde272","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:04:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1394.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-08-24 18:04:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1397.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-08-24 18:04:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.56,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6ce81cd7-78cf-4eab-9243-3daaaa83a227","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:04:43","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 18:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 18:05:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3325e626-0dd5-48d2-ad00-fb7494bdeec0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:05:01","userId":null}
{"durationMs":67.07,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"fe12e776-bc0a-4437-93fa-9e3fa40b059a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:05:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":86.09,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2e29e27d-d37e-4d4a-adad-734d1910ef5d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:05:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":437.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-08-24 18:05:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":445,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 18:05:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.75,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b3490986-825f-4ffa-9f47-70326f9a88f0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:05:43","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:06:00"}
{"durationMs":56.39,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"0097fff1-7c9b-4815-8f03-66a739d9d0bd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:06:43","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":53.75,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"18295d94-fe7b-434e-a1ad-736906afeab8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:06:43","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":459.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-08-24 18:06:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":457.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-08-24 18:06:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.75,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c7a941e0-fea1-48e0-a9ae-d5ceaab2fab8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:06:44","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 18:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 18:10:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1251a94-fdfb-4654-8caf-c5a313d89723","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 18:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 18:15:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a4d37387-2f03-4164-beaa-43ac4c28e755","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:16:00"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":48,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 18:16:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":49.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-08-24 18:16:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":23.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-08-24 18:16:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":24.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-08-24 18:16:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":25.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-08-24 18:16:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":26.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-08-24 18:16:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":27.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-08-24 18:16:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/payment-methods"},"durationMs":38.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-08-24 18:16:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":38.9,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9d1b02c2-abe8-45e7-9187-a4696730cf58","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:16:16","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 18:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 18:20:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"97c17be8-bdbc-4e14-8f2a-f7ae952f41df","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:21:00"}
{"durationMs":1.96,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"22e45307-35fa-4377-be33-2de92630f768","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:21:35","userId":null}
{"durationMs":3.49,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"1320b0a3-b1b9-41ce-a3fa-1d857facbce6","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 18:21:35","userId":null}
{"durationMs":2.3,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"9723fee4-c179-43f0-b606-6c0cd2e58591","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 18:21:35","userId":null}
{"durationMs":3.42,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"90402a7b-e54d-44ff-8580-b6df4099af49","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 18:21:35","userId":null}
{"durationMs":2.17,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"52bdfcb5-c77a-4d8a-a4ee-0b563899a7aa","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 18:21:35","userId":null}
{"durationMs":2.17,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"45fd9934-2688-4bb1-a975-071bd181919e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 18:21:35","userId":null}
{"durationMs":3.43,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"547568f3-fc3b-41b8-8908-025d949ffc42","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 18:21:36","userId":null}
{"durationMs":3.93,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"fec54145-15d4-4aa6-a55c-0ed6e3e81470","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-24 18:21:36","userId":null}
{"durationMs":41.24,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"15ece2fc-1ce7-4f21-9ba6-ce1b58a2e450","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:21:36","userId":null}
{"durationMs":52.34,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"632b274e-ba6a-44a8-b1d7-3ef2ad06c06e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:21:36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":84.04,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a227bfd6-57dc-4283-8538-1b3b1c44bc7f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:21:36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":91.2,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"fd0de276-0045-414e-bc1b-368c296cd66e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:21:36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":108.99,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"8ee68428-b742-4556-bf27-559a355284bb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:21:36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":261.78,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"850e66aa-729c-479f-8c31-4df640c8ccf7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:21:37","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/dashboard"},"durationMs":348.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-08-24 18:21:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/school-info"},"durationMs":355.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-08-24 18:21:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":342,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 18:21:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":345,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 18:21:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":349.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-08-24 18:21:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":763.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-08-24 18:21:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":810.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-08-24 18:21:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":400.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-08-24 18:21:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":535,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 18:21:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":538.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-08-24 18:21:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":540.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-08-24 18:21:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":101.07,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f631160d-9684-4876-ba31-34823eb7da47","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:21:37","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":390.24,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"f38eecd2-f9fd-43ae-9a68-7ec8b5431f57","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:21:37","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":424.67,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"949f5b7c-d788-4c5b-84ff-3f52dec69e5d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:21:37","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":51.74,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/payment-methods","requestId":"9608e475-a6d3-464a-aebf-c794c59d816a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-24 18:21:38","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1124.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-08-24 18:21:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":1757.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-08-24 18:21:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":1759.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-08-24 18:21:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/payment-methods"},"durationMs":392,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-24 18:21:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.38,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"59f00ef9-22c1-4ba4-bd66-cfa2f82c5824","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:21:39","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 18:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 18:25:00","totalConnections":1}
{"durationMs":1.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bbc002e6-8c3b-40f2-89e5-ea14afbd7471","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 18:30:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"78890318-2e1c-4fc6-be92-193fccbc7e71","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 18:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 18:35:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5f8b4c83-2c10-4999-95c1-32884d84c244","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 18:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 18:40:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9e5b2f1-836b-4de3-85eb-0d3beab3778e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 18:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 18:45:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3abded66-2ca8-4b07-b28f-dc9ed8ec5aea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 18:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 18:50:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fbae0d5e-ee48-486b-b2e8-89bd28a38d15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 18:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 18:55:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f47ab89-a238-482c-ab8f-c9f103c767e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 18:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 19:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 19:00:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 19:00:01","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d6681b0d-bc3e-4896-9604-1a1114e89980","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 19:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 19:05:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a0af8e0-a2d0-4bc8-9495-ab40f9be6fd4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 19:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 19:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 19:10:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87d33f21-6a17-4e2e-bcfd-dcf04e24c24e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 19:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 19:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 19:15:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"722081d3-1f2d-4273-a6ee-54d6312fdd8f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 19:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 19:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 19:20:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f36fdb7b-65fb-4fab-83d7-01778aa84818","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 19:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 19:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 19:25:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"234fd495-2df5-4116-9089-b3d069641330","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 19:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 19:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 19:30:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a83aee18-77d7-4eb8-b6a7-2f23d77de59b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 19:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 19:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 19:35:00","totalConnections":1}
{"durationMs":1.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"248b7064-ae35-4430-bef7-c412e6e01dcd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 19:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 19:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 19:40:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b2bd7ac-d453-4c1c-bbb6-01babd35f51b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 19:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 19:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 19:45:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4e5a4d7a-f8e6-4d89-8f88-5a0ecc104e1e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 19:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 19:50:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c06278b7-c08e-4481-b75c-922c14764939","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 19:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 19:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 19:55:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd63052d-ffe0-4242-9007-0ad20c7daea3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 19:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 19:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 20:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 20:00:00","totalConnections":1}
{"durationMs":2.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"795cfdc0-0902-432d-a3c4-0d5fecb649ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 20:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 20:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 20:05:00","totalConnections":1}
{"durationMs":1.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d7766ece-d6f0-4ab5-b9db-7b9138e1f3c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 20:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 20:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 20:10:00","totalConnections":1}
{"durationMs":1.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e0e35d9c-43f3-48af-8d1e-f36a3bc1ff50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 20:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 20:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 20:15:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4b77aff0-25de-4528-9ef3-3b5334350c40","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 20:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 20:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 20:20:00","totalConnections":1}
{"durationMs":1.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4758c528-43e5-4e57-b5c4-dac4372e507a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 20:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:23:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 20:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 20:25:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dedab507-26f5-49fb-a7d7-499803d0fc05","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 20:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 20:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 20:30:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4fa5cc9f-c0fa-4d98-8513-c41b0b630301","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 20:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 20:35:00","totalConnections":1}
{"durationMs":2.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9777f04f-bddb-4cc4-be4d-3a0eafd968ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 20:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 20:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 20:40:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a941f5b9-ae1f-42ba-9cd5-b16d475054b7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 20:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 20:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 20:45:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84411926-e4da-4859-8469-ca78a52c108b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 20:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 20:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 20:50:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8b5e10b7-34d5-46b0-9134-f0ae3df1d1e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 20:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 20:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 20:55:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e06104bb-83e7-45ec-bea6-18829983bb37","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 20:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 20:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 21:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 21:00:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d5216989-bac4-41a7-922a-9c974aec8028","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 21:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 21:05:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1fdabc74-62dc-453d-8862-d4f4fa6a68b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 21:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 21:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 21:10:00","totalConnections":1}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"318fda58-482c-4a42-bba1-1e8ff022829c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 21:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 21:15:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1131b1ef-1719-4b47-88f4-afe649bf65a3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 21:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 21:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 21:20:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4ee55e8-19f4-40cc-a7ec-45c0f1608875","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 21:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 21:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 21:25:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"29c5b9fd-61a4-41da-b99e-34e21f72e390","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 21:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 21:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 21:30:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9709a1d4-d755-434a-9212-6714582fcdbf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 21:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 21:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 21:35:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"64cdae77-d605-4f1c-a668-56dedb04a1d1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 21:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 21:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 21:40:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"27041bc4-5147-4fb0-a135-5d5760c10f74","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 21:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 21:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 21:45:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"babe3082-c174-4750-b7b3-7c0875a458eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 21:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 21:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 21:50:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d6b8d3e3-f5a0-4b39-8339-f2326757ac8d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 21:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 21:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 21:55:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"deb7565d-a200-4766-9d2f-2b3587481768","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 21:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 21:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 22:00:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1146a87c-3c7c-4162-84a1-ba4c33ada804","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 22:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:02:00"}
{"durationMs":1.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d6e5fbfc-5802-4dd4-95a1-cff82310dad6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 22:02:08","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 22:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 22:05:00","totalConnections":1}
{"durationMs":1.7,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aaac8e40-836b-4d17-8d43-ac1449333536","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 22:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:10:01"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"616601ae-9262-4f78-871c-1670295afc85","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 22:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 22:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 22:15:00","totalConnections":1}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"35003733-551f-4441-956b-94552eaa34ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 22:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 22:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 22:20:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b432a7e8-8858-4311-9194-51e42a395866","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 22:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 22:25:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"69f03fc4-8ff5-4570-9bb1-017733448da1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 22:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 22:30:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ffe0720-13b9-4bcf-87ba-4b0e659c4354","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 22:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 22:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 22:35:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ba44296-e0a5-4b1e-8928-abef7afe43c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 22:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 22:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 22:40:00","totalConnections":1}
{"durationMs":2.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25840ae3-5882-4375-831f-94e2539b9da6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 22:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 22:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 22:45:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e677b619-497f-4973-b258-7556819ec726","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 22:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 22:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 22:50:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eb7f1281-de70-4e3d-9145-244cbdcc6ef5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 22:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 22:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 22:55:00","totalConnections":1}
{"durationMs":1.68,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0509fdc5-e61f-47e7-abd1-4e23f0ffea7d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 22:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 22:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 23:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 23:00:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46d67a3a-36fe-4546-b29c-db42567cfa10","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 23:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 23:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 23:05:00","totalConnections":1}
{"durationMs":2.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e5e3ac56-c755-4090-a65d-087f92439b29","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 23:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 23:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 23:10:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a011420-9508-4b51-ade0-2dd14eaab686","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 23:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 23:15:00","totalConnections":1}
{"durationMs":1.69,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0cd25c6c-31e3-49e6-908a-a098a88c6a0f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 23:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 23:20:00","totalConnections":1}
{"durationMs":1.68,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e58b4454-acaa-428f-bce1-26f14b1ef5b7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 23:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 23:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 23:25:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"75df5881-a4a0-4bd8-b2da-498a7da4f43b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 23:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 23:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 23:30:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98fc6afd-9183-474c-a13e-9a5fae27aade","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 23:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 23:35:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2e1d2a33-b073-43e0-a384-980ace9b50a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 23:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 23:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 23:40:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bdf5d186-fb1c-4423-a755-8337681e54c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 23:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 23:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 23:45:00","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f621d096-0445-434a-bce6-fc71980075b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 23:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 23:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 23:50:00","totalConnections":1}
{"durationMs":1.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1d7483eb-fbd5-48ec-8af4-777aac3a44d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 23:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-24 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-24 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-24 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-24 23:55:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7b814c6b-6101-45cc-af47-ce63091e870a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-24 23:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-24 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 00:00:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"03e1181e-11e2-491d-9494-83b21b01fa3e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 00:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 00:05:00","totalConnections":1}
{"durationMs":1.68,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da77dcd3-b601-440f-82ea-46a71bf79d3d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 00:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 00:10:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ecf946d-40e5-4be4-8a1c-dec8684d0892","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 00:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 00:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 00:15:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da465cfe-e37c-481c-b2b9-7a0ecb7b950a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 00:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 00:20:00","totalConnections":1}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bc1f673e-b0eb-4e81-a121-53f7081f56fc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 00:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 00:25:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9be2f147-68a8-45ee-82b1-3cec9c8a9e15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 00:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 00:30:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b41819c6-6b8a-4354-997b-134e6985c67d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 00:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 00:35:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7dbe592-d312-495e-a2d7-8ea29862c9d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 00:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 00:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 00:40:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b72064ef-fe4f-4786-a48c-0e0a2fb0671a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 00:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 00:45:00","totalConnections":1}
{"durationMs":1.67,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"52b04136-e0c5-4b53-b64a-8e67dd09c6ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 00:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 00:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 00:50:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ee28e69-25e1-45fb-8eaf-7596be17cf50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 00:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 00:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 00:55:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"085a3620-6438-4a7a-8e67-8c614560d2c4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 00:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 01:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 01:00:00","totalConnections":1}
{"durationMs":1.68,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00ea691e-baec-4216-aeab-5dc9ed7a3807","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 01:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 01:05:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f252d7b-9ab8-4f91-b3f2-9eacf0d1c00b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 01:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:07:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 01:10:00","totalConnections":1}
{"durationMs":1.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"33de0b88-49eb-4652-ab60-af90843c5cf8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 01:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 01:15:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a78fc3f4-d7ce-4d9e-a64d-863f87dc62c4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 01:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 01:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 01:20:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1e98d249-3771-428d-9536-9eaceab649eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 01:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 01:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 01:25:00","totalConnections":1}
{"durationMs":1.69,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9e0a214f-9697-4e6c-ac47-82648ed3a3c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 01:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 01:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 01:30:00","totalConnections":1}
{"durationMs":1.71,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b3706ec-78d2-4e18-8a35-bdcdb8c57290","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 01:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 01:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 01:35:00","totalConnections":1}
{"durationMs":2.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cf212410-8902-4230-9946-4e5ebb110aff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 01:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 01:40:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3a2d35dc-4da9-457b-82a5-30647fdf60f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 01:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 01:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 01:45:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6d42fd70-f641-4b90-b198-f2b6c6703cea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 01:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 01:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 01:50:00","totalConnections":1}
{"durationMs":1.66,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0b77cbac-3a7f-446e-bd4f-4cec8c2ee38f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 01:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 01:55:00","totalConnections":1}
{"durationMs":1.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b92ec96d-2c2a-41e0-acbc-625715c7ae17","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 01:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 01:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:00:00"}
{"level":"info","message":"[CRON] Payroll auto-generation started","service":"cbc-sms","timestamp":"2026-08-25 02:00:00"}
{"level":"error","message":"[CRON] Payroll auto-generation 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/payroll-generate.job.js:56:43)\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:524: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:581:17)\n    at process.processTimers (node:internal/timers:519:7)","timestamp":"2026-08-25 02:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 02:00:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1c0a0e02-bff0-4860-969d-19540c215824","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 02:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 02:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 02:05:00","totalConnections":1}
{"durationMs":1.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"961042f4-4ac3-40b9-a41e-8e62edf71939","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 02:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 02:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 02:10:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"daf703f0-d577-4937-b224-2e2b352ca3df","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 02:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 02:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 02:15:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"195df419-8f0f-499a-a152-b38a944c4bb5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 02:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 02:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 02:20:00","totalConnections":1}
{"durationMs":1.61,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a1a3eba9-cc6b-4170-afd8-f2056b1a137e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 02:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 02:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 02:25:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"654ced6f-d9dc-4000-bff1-e40babb6646a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 02:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 02:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 02:30:00","totalConnections":1}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f64b68f7-57e4-4fbd-9068-73fc0fdcaf3e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 02:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 02:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 02:35:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"99586be3-149a-46ac-bc11-8b9bde8f833d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 02:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 02:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 02:40:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92ccaf1b-66d3-4edf-9bd5-c3d12966a23d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 02:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 02:45:00","totalConnections":1}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c636a72e-fc2d-49a6-9326-6ceb0af38fcc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 02:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 02:50:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9ca00bb-828c-45c3-9579-6616fe716512","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 02:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 02:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 02:55:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"638ff717-982e-4568-827d-55e6e923475d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 02:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 03:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 03:00:00","totalConnections":1}
{"durationMs":1.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eb5b030a-eef1-4003-873d-c02933af1d2e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 03:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 03:05:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"31e948be-640d-48bf-a93d-493f1ea91499","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 03:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 03:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 03:10:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1809d88b-9bf0-4a4d-adcf-9340bae7fff6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 03:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 03:15:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e5a3c942-4ff1-44a7-8b63-aa505734595c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 03:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 03:20:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4e5d0ef7-8af6-4b5e-96b1-38b65d56ff92","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 03:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 03:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 03:25:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8a301847-50b7-4fe7-beaf-e8e6db7b1de1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 03:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 03:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 03:30:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"74e234ef-94eb-4243-80cc-d936d818aa9a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 03:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 03:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 03:35:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c89f0a07-057f-41e9-b36e-160eb55a0479","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 03:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 03:40:00","totalConnections":1}
{"durationMs":1.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"babdc279-f82b-4cd8-be2a-7f579189221d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 03:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 03:45:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6347c2ef-d344-4956-a2b2-ba03f22b2ef7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 03:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 03:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 03:50:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0d91e490-f115-4ae2-9662-d7fa5d007bc1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 03:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 03:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 03:55:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"62f927e8-0d97-4c01-ad35-201f2864d3c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 03:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 04:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 04:00:00","totalConnections":1}
{"durationMs":1.67,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a53f2f8-683c-4905-a66b-78e68ee5cbc6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 04:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 04:05:00","totalConnections":1}
{"durationMs":1.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"422acb98-b83e-4266-bf4a-66ded815960b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 04:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 04:10:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4bd0bd74-0c60-4c2d-888c-1a90e3d7571c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 04:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 04:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 04:15:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"81453f56-c3cf-4544-9dbb-e4ac83c35483","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 04:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 04:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 04:20:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72e0d4f5-9134-465f-bf23-115bae3d0632","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 04:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 04:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 04:25:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9009738f-89ee-4882-b081-e4d14578c021","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 04:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 04:30:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8b3d519c-3623-490a-96d2-2160d734c55d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 04:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 04:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 04:35:00","totalConnections":1}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12f94493-ff63-462a-aeda-3261072b5996","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 04:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 04:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 04:40:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0317ea74-c65e-48ef-9443-d1b825861d1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 04:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 04:45:00","totalConnections":1}
{"durationMs":1.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e422d3d7-81f2-4107-8a9f-74ed52cd5cd6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 04:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 04:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 04:50:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"16dddc80-8e57-4d9e-8c3d-787458f8481d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 04:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 04:55:00","totalConnections":1}
{"durationMs":1.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"27eb052a-ba9a-4310-b6d9-65fb132f0777","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 04:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 05:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 05:00:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c06c7006-28d5-4c3a-8710-342b19ead118","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 05:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 05:05:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"89603454-1d7f-491a-a9d4-c39e2a476985","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 05:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 05:10:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"86036a4b-67da-4ef5-9d40-514be8588206","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 05:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 05:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 05:15:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f9b201f4-5ddc-4cca-848d-698a62d0b3fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 05:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 05:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 05:20:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cc167488-866b-4239-9e54-cde35997485f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 05:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 05:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 05:25:00","totalConnections":1}
{"durationMs":1.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d90f32e-de21-45ed-95a5-6332c12e9a2c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 05:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 05:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 05:30:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9211dc6-3608-4f8b-8cb1-43de70004729","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 05:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 05:35:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"85541508-1e82-4fa1-b962-0701259f421f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 05:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 05:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 05:40:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c16d9535-af0f-4236-aa15-f336e1812095","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 05:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 05:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 05:45:00","totalConnections":1}
{"durationMs":1.68,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"883654a1-9913-4452-86d2-5f3793e67f84","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 05:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 05:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 05:50:00","totalConnections":1}
{"durationMs":1.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a843342-e142-4494-9a96-a3fd7ac80be1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 05:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 05:55:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"947ebf21-30bd-4636-8bc2-2d22c9250de4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 05:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 06:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 06:00:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"289987b4-39a4-4582-9656-934ac571a9cb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 06:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 06:05:00","totalConnections":1}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1fc6ed17-dfd1-48f2-8a65-19ca2a989d8d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 06:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 06:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 06:10:00","totalConnections":1}
{"durationMs":1.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dac13893-0f7e-4174-aebf-2689ef2a6226","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 06:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 06:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 06:15:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7f3f93f7-7a9a-4b97-bcce-2c4f86192f18","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 06:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 06:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 06:20:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1f1f8063-1ab4-4060-b055-ac7558ef70e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 06:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 06:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 06:25:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7a81737-0db5-4032-b112-45dab68fa765","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 06:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:27:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 06:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 06:30:00","totalConnections":1}
{"durationMs":1.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"141a203d-adb1-4874-8d0b-41f83a268d9a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 06:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 06:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 06:35:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ff1c4b75-1687-4bbf-81a0-bc39f9b64db7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 06:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 06:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 06:40:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e3f251c1-0c31-4d05-b73e-e896d9b4917d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 06:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 06:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 06:45:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9611c846-b189-44f4-bf89-f72f4cae003d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 06:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:48:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 06:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 06:50:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ee7bd57-8117-44b6-8dda-8895b1382f4a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 06:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 06:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 06:55:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"31f22b06-bf45-407e-8046-687c97398694","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 06:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 06:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 07:00:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb6e84e0-09a9-4e3d-a0d4-ba0f414ae500","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 07:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 07:05:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ac06e533-ab0a-48c2-a583-f82421c8581c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 07:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:08:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 07:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 07:10:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dccd95e1-20cc-48ba-8edb-9ca95feb9358","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 07:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 07:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 07:15:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"48e0baae-2d7f-43f9-bd6e-0af34f5df0d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 07:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 07:20:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5781a3ee-e0fa-4910-bee6-c37a9e060a59","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 07:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 07:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 07:25:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ac8b7f8-a46d-4900-beb0-2d809229b2b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 07:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 07:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 07:30:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3750c81c-3bfa-4b7c-872b-541ca1cd7257","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 07:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 07:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 07:35:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3df63cb5-cbf0-44df-b237-8c7da82ded45","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 07:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 07:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 07:40:00","totalConnections":1}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3787fbba-e07d-4d4e-a201-4614355c7111","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 07:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 07:45:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f9ffedd3-6032-45ff-b2d3-019a1a7f1e50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 07:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 07:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:50:00"}
{"durationMs":1.61,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"beeff0e7-1b33-43e3-be51-b2e86aba24a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 07:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 07:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 07:55:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ec7ca99-dd55-4353-b12e-20ed6a624cdd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 07:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 07:59:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-08-25T05:00:00.616Z","service":"cbc-sms","timestamp":"2026-08-25 08:00:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-08-25 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:524: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:581:17)\n    at process.processTimers (node:internal/timers:519:7)","timestamp":"2026-08-25 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 08:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 08:00:00","totalConnections":1}
{"level":"info","message":"[Subscription Job] Evaluating 1 trial tenants","service":"cbc-sms","timestamp":"2026-08-25 08:00:00"}
{"level":"info","message":"[Subscription Job] Trial expired for school: Bungoma (78a14f6a-4c90-4dba-8b7a-8f1419cfa698)","service":"cbc-sms","timestamp":"2026-08-25 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-08-25 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-08-25 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-08-25 08:00:00"}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8394482f-7920-47c0-8783-9a899f9caf22","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 08:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 08:05:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3d80e38f-a9a1-4291-b8fd-161475f887b6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 08:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 08:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 08:10:00","totalConnections":1}
{"durationMs":1.71,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7321893d-4173-4e27-b3c0-fb4ad8e31a64","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 08:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 08:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 08:15:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d865e30e-8188-4985-8a35-1a17c8900fa0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 08:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 08:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 08:20:00","totalConnections":1}
{"durationMs":1.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4cde7a3f-4f02-4f2e-86ae-a3d24b3a4b19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 08:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 08:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 08:25:00","totalConnections":1}
{"durationMs":1.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"35a76466-74a5-4be3-899e-d065df0a9066","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 08:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 08:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 08:30:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7175b083-550e-4831-89c3-d98132f9d859","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 08:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 08:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 08:35:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"259936c4-ea4e-4130-b5a7-42019b6eac4c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 08:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 08:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 08:40:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"63bf0340-241e-4849-92cb-060ad9d09105","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 08:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 08:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 08:45:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f179b9b-b3a2-45ee-ae32-d0d67a7f2cde","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 08:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 08:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 08:50:00","totalConnections":1}
{"durationMs":2.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"22ebd1b0-5ef8-4de5-b62a-c89cf43ac393","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 08:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 08:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 08:55:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"782b35e3-6228-4272-b575-f5a4bbb9714e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 08:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 08:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 09:00:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"baa9f27f-2175-4efa-a4a1-359e3ce82d50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 09:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 09:05:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de4f217a-3bb3-4d35-92c4-711cc6a13259","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 09:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:10:01"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1f8e253c-0da0-4c03-9dcd-abc6faeee436","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 09:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 09:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 09:15:00","totalConnections":1}
{"durationMs":2.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5222f75f-a0c2-4697-8537-4ea3f4b90241","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 09:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 09:20:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a91b1eaa-bb25-4fc9-899b-63176b1bd892","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 09:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 09:25:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4a6ffdb2-8f49-4ef4-8919-a656f7c50e0a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 09:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:29:00"}
{"level":"info","message":"[CRON] Attendance alert started","service":"cbc-sms","timestamp":"2026-08-25 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:524: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:581:17)\n    at process.processTimers (node:internal/timers:519:7)","timestamp":"2026-08-25 09:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 09:30:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"277690d8-9fd4-48a6-b0dd-df220c111be0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 09:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 09:35:00","totalConnections":1}
{"durationMs":1.67,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f2e08f34-f41d-4340-b40b-11daac94cdec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 09:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 09:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 09:40:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ddaff0df-6394-4516-b7a0-5cd331bfd6ec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 09:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 09:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 09:45:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2e982cff-9169-4a78-a01c-cd0b2f885d4f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 09:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 09:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 09:50:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3d72facf-a355-4ff1-b2df-3884e0460b82","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 09:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 09:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 09:55:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"23c4df17-1461-4286-ab48-60accdc520c3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 09:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 10:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 10:00:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4abf93e-f9a3-430f-bdc6-7f601e053cf1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 10:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 10:05:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c73cfda1-ea25-4973-9713-fc6df664308d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 10:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 10:10:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"221d1bd9-e40d-41db-95f2-c7df570c2df8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 10:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 10:15:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"53672d7d-e4ae-4360-9582-3dd25897402e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 10:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 10:20:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"811c05d9-5ca7-4d00-8ef9-5e4dfd4a4b00","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 10:25:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"43538050-6757-4577-a91d-d9393044c199","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 10:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 10:30:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12536b59-1415-42d8-8ea2-e7ad64572915","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 10:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 10:35:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d189e245-d91d-498e-b1fc-22c60d5abfff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:38:00"}
{"durationMs":4.48,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"fd953f05-aa98-494f-b2a5-7e83a9382c1f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 10:38:23","userId":null}
{"durationMs":1.76,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"76af3441-4f65-4609-83e9-9701f5e7533b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:38:23","userId":null}
{"durationMs":1.27,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/stats?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"464cf0f5-5869-4fcd-8154-50fac9075ce1","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 10:38:23","userId":null}
{"durationMs":2.98,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f6cce3e8-82f4-4eb5-b6cd-0de8c350aacb","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 10:38:23","userId":null}
{"durationMs":2.6,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"8d85e239-5b27-49f6-ab83-fe1d5c71d61b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 10:38:23","userId":null}
{"durationMs":1.24,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"f9716bb2-0fbf-465c-965f-57081a25808d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 10:38:23","userId":null}
{"durationMs":1.3,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/items?lowStock=true&limit=10&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"fec5a9ae-ca6b-4c1b-a65d-01cf82970147","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 10:38:23","userId":null}
{"durationMs":1.26,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/transactions?limit=10&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"798042a6-fc6b-4e7e-8aa4-514d8858413b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 10:38:23","userId":null}
{"durationMs":1.37,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/items?limit=10000&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"a63affd3-71ef-48b4-be10-b6f8d457b725","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 10:38:23","userId":null}
{"durationMs":0.91,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/purchase-orders?limit=5&sortBy=createdAt&sortOrder=DESC&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"edeeb347-1a37-467b-a6b4-48711327b38e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 10:38:23","userId":null}
{"durationMs":110.23,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"de09b6db-9c46-4010-afad-733acb58c99d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:38:26","userId":null}
{"durationMs":603.86,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"6b6d5be7-356c-4824-a2b5-5211403e4f33","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 10:38:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":807.34,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/items?lowStock=true&limit=10&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"33dc333f-5dae-48e7-96b7-8a1599ff1898","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 10:38:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":779.62,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/transactions?limit=10&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"46acb892-a945-4785-9239-d2144265bc40","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 10:38:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":974.36,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/stats?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"5effabca-2694-4c4a-bc36-37e9cb40f20c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 10:38:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1021.25,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/purchase-orders?limit=5&sortBy=createdAt&sortOrder=DESC&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"fff4808c-7196-4d8e-8a74-4ac872be76fd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 10:38:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1013.12,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f2c362ea-656b-4929-a812-9d9713e74fc7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 10:38:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1051.65,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/items?limit=10000&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"061cd1f5-cffe-4ad8-8fd0-ff6cffa0d0ba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 10:38:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1042.91,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"8cc44efd-3105-4d32-ae0c-81da3f500297","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 10:38:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1040.72,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"6f5c5b39-7741-497a-ad72-91fe721b3725","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 10:38:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":3489.1,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 10:38:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/inventory/stats"},"durationMs":3600.4,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 10:38:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":3601.5,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 10:38:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":3612.5,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 10:38:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":3613.5,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 10:38:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/inventory/items"},"durationMs":3617.2,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 10:38:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/inventory/transactions"},"durationMs":3631.5,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 10:38:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/inventory/items"},"durationMs":3636.3,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 10:38:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/inventory/purchase-orders"},"durationMs":3676,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 10:38:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":102.46,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a709d482-62e9-4991-bf8f-4cfdf0503847","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:38:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1061.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-08-25 10:38:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/items"},"durationMs":1269.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-08-25 10:38:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/transactions"},"durationMs":1275.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-08-25 10:38:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/stats"},"durationMs":1474.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-08-25 10:38:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/purchase-orders"},"durationMs":1499.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-08-25 10:38:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1539.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-08-25 10:38:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/items"},"durationMs":1535,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 10:38:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1544.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-08-25 10:38:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1545.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 10:38:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.22,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7e9b5cb4-39a0-4f91-b5d9-6c52977939ef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:38:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 10:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 10:40:00","totalConnections":1}
{"durationMs":1.66,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5f8b4ac1-bbce-4384-9d56-e630ad6bf5b6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:42:00"}
{"durationMs":2.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6c30bea8-6554-4cc8-9409-f7ffe4cf92ea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:42:16","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 10:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 10:45:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e183d68a-b499-4d78-84d2-8c6ef0c52537","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 10:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 10:50:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"385cbdb7-6149-4905-9908-a94522e83536","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 10:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 10:55:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3efd8e4e-83c2-4302-907c-a6cee126458a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 10:59:00"}
{"durationMs":2.13,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0682d84d-1c7f-443e-897b-e1a9c70cd9c5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 10:59:54","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 11:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 11:00:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"90bb01e3-1a92-46e9-aec6-4babd03196a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:01","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":60,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-25 11:00:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.15,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9d695e16-1d8d-40eb-9f79-dd20b6f41dac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:13","userId":null}
{"durationMs":929.3,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"bc7c326f-1302-436b-a3dc-c9c59c8ae93e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:13","userId":null}
{"durationMs":45.98,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"f0e5bf09-1f7f-46f2-9247-0c0fba9d9597","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:14","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":121.66,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"ccd72231-9dfd-491a-a19b-231ef24abf1d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:15","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":204.11,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"7d27f3ac-0695-4056-b420-ffe9da5cc399","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:15","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":218.65,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"82d03e4b-94da-40d8-a26f-33f06f3d707e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:15","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1336.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"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-08-25 11:00:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"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-08-25 11:00:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":538.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-08-25 11:00:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/guardian"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","navId":null,"to":"/guardian"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.36,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3bc72e34-51c9-49fe-b292-85926f74f9f9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:15","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":35.63,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"c94b34db-3db4-4be8-93ce-530dcf86f152","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:15","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":107.69,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"ba068f88-cd98-4eda-a3f7-1f601ed37399","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:00:16","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":157.5,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"d0d453dc-fd7e-4659-a15e-48e4888487c1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:00:16","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":569.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-08-25 11:00:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":647.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-08-25 11:00:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":651.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-08-25 11:00:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":994.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-08-25 11:00:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.45,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2dbc8ae7-bf0f-4bc0-9d45-4a712dd8cb74","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:16","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":17.3,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"2268294f-f11f-4f0c-8d8b-730d38c0cd2c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:00:16","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":94.37,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"d4b5f942-f23e-4a1d-95e9-45f499f6c08c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:00:17","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":91.22,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"7c7dc526-a69c-4744-b7fd-cba354c654c7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:00:17","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":101.34,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f29c0d04-b519-4a04-a202-67143b47f60f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:00:17","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":131.74,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"243b7555-2d42-4785-8132-65b051fd135d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:00:17","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":641.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-08-25 11:00:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":643.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":462.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-08-25 11:00:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":58,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":8.95,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6682bdcd-d0d9-43c7-9e13-d2773889d66b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:17","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1031.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-08-25 11:00:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1032.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1095.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-08-25 11:00:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":1098,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":6.81,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"87dd9e72-1e35-4163-b590-1fbbc999d439","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:18","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1787644814779-818493","text":"Fees"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.96,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b7470b40-40a9-4c87-8264-2abff4ba1ee7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:20","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":142.71,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"7460bf58-dd69-45fa-9713-be4c1d36f2c8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:20","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":51.58,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/payment-methods","requestId":"e634ad5e-e203-44a3-99ea-7c0188524c85","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:21","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1787644814779-818493","text":"Fees","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":1067,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","navId":"1787644814779-818493","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":1067,"event":"NAV_STALL","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","navId":"1787644814779-818493","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":1092,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":573,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.04,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e86ba6a0-fce6-495c-ae85-c210f8414b16","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:21","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/payment-methods"},"durationMs":460.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-08-25 11:00:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.6,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e00df180-5727-4557-be9b-95c2238bdc32","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:22","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Pay KES 21,465.00","name":null,"type":null},"durationMs":47,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.21,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"db66768d-4332-486d-a87c-3597d606fd77","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:23","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"amount":1,"feeItemIds":["b13011dd-a462-405a-86e5-d388cd8b466f"],"guardianId":"1d8921a4-3c48-4035-9b8d-6098367e43c6","invoiceBalance":21465,"invoiceId":"35b80bc4-44ea-43bb-b95d-b18a69cbc0ed","level":"info","message":"[Guardian Payment] Initiating M-Pesa payment","service":"cbc-sms","studentId":"cmp8gtpz200fy8bcnxg8120p8","timestamp":"2026-08-25 11:00:38"}
{"bankAccount":"***6152","bankName":"KCB Bank","bankPaybill":"522522","level":"info","message":"[Guardian Payment] Bank C2B direct settlement configured","service":"cbc-sms","timestamp":"2026-08-25 11:00:38"}
{"data":{"id":null,"label":"Pay KES 1 via M-Pesa STK","name":null,"type":null},"durationMs":32,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.87,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3a5145fb-5205-4fd2-9dde-202c65d71ea5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:39","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"checkoutRequestId":"ws_CO_25082026110037724706576238","guardianId":"1d8921a4-3c48-4035-9b8d-6098367e43c6","level":"info","message":"[Guardian Payment] STK Push initiated successfully","requestId":"aca8efa1-ef25-493e-bb2f-4baf53a3c122","service":"cbc-sms","timestamp":"2026-08-25 11:00:40"}
{"durationMs":1995.11,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/pay-mpesa","requestId":"b56ce6f8-a41a-4e5d-bdd6-1399f7d71323","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:40","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"POST","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/pay-mpesa"},"durationMs":2401.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-08-25 11:00:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":13.8,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"70bf50d5-f47c-41ee-ae4a-0077c1d66393","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":49.31,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_25082026110037724706576238","requestId":"2c972801-f2f2-424d-b9f4-80ec5cfd78ea","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:43","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_25082026110037724706576238"},"durationMs":450.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-08-25 11:00:44","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.54,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3bef3dfb-79ad-4fc6-917f-fdbf1c1ffb75","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:44","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":67.51,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_25082026110037724706576238","requestId":"7e40174f-c502-4998-80b8-10d7d4ab652e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:00:45","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_25082026110037724706576238"},"durationMs":492.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-08-25 11:00:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.08,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"05664918-635b-4cbe-8441-99699b4932b2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:46","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":46.81,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_25082026110037724706576238","requestId":"15e8edab-9611-4498-b3ef-2bbd38aa1a81","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:00:47","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_25082026110037724706576238"},"durationMs":434.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-08-25 11:00:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.46,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"23dea89a-075b-4b8b-849b-9c333b817543","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:48","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":42.11,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_25082026110037724706576238","requestId":"8b0d2e70-e6de-48b0-8364-d351421be726","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:00:49","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_25082026110037724706576238"},"durationMs":469.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-08-25 11:00:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.03,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"85e29336-a84d-44d9-a816-1ff2ccc8e0b1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":42.77,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_25082026110037724706576238","requestId":"828d3fe6-4693-4d77-8d5b-26f85b9211b4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:00:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_25082026110037724706576238"},"durationMs":469,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.16,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a8b2ee31-6321-44ed-8846-04ea1c548892","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:52","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":41.75,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_25082026110037724706576238","requestId":"3b45772a-b37a-47db-877a-372586374535","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:00:53","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":721.5,"ip":"196.201.212.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/mpesa/callback","requestId":"55145e97-0b1c-43dd-bd5b-1e7c4ff7f8e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:53","userId":null}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_25082026110037724706576238"},"durationMs":437.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":6.05,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6c231bfd-d8ae-4676-a15d-c93bfda2b96b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:54","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":39,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_25082026110037724706576238","requestId":"3f4a2f94-11bf-481c-b141-b492f63c0d63","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_25082026110037724706576238"},"durationMs":976.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.22,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ef9b0115-16f7-4b53-984d-4df7b6383f1c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:56","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":124.83,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"acd55e93-650c-4217-bf33-ad20bd91c06a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:58","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":587.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:00:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.71,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cadbc82e-cb79-4255-8a7b-0858e10867ff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:00:59","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:04:00"}
{"durationMs":81.62,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0b602474-96be-44f0-a341-66f2a0255c30","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:04:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":86.85,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e0818764-5276-4634-acff-950c1a0e3b0a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:04:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1395,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:04:44","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1385.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-08-25 11:04:44","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.79,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6f1cfe91-597e-4265-b707-f4a84ad40f5b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:04:44","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 11:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 11:05:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f8cd27ed-d81c-4a4a-9dfa-686baf13ff14","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 11:10:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ec968a3-b161-496f-83a8-9c375e8f985a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 11:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 11:15:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa947726-2567-4b15-852c-d48140a1089c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:16:00"}
{"durationMs":3.92,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0d84720b-f0d8-4093-92b7-8f943dfd4d33","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 11:16:18","userId":null}
{"durationMs":2.37,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"755aad84-fa77-4c9c-b7c3-05714a826337","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 11:16:18","userId":null}
{"durationMs":29.62,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"62a28c46-dcd4-4c5a-b0be-910654b81d3d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:16:19","userId":null}
{"durationMs":216.7,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9f4765a2-41c7-4f60-97c9-b8b094450576","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:16:19","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":284.03,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"3a376338-586f-4534-909e-983ecf0e6e34","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:16:19","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":2035.4,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:16:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":2051.2,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:16:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":658.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:16:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":664.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-08-25 11:16:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.39,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f1c915ca-814e-4e64-b8d4-7ccb789ec01e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:16:20","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 11:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 11:20:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ec3ee77-3f55-472b-b11f-60070ae82166","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 11:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 11:25:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8494b635-a7f1-4879-a756-95c4ca4a82f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 11:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 11:30:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"21758945-e668-498d-a75c-0f64943e8b22","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 11:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 11:35:00","totalConnections":1}
{"durationMs":1.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"def727a8-3f08-48a3-93d1-41e6a17623ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 11:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 11:40:00","totalConnections":1}
{"durationMs":1.7,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad00bf84-0d31-4381-a335-57711625145c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 11:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 11:45:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eecd2b48-f181-419b-b429-29c6bba77b62","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 11:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 11:50:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b0603e7a-df80-495a-98a0-ac6815ed074a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:52:00"}
{"durationMs":4.21,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"dba22984-938a-4ab2-85df-0887f116991b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 11:52:04","userId":null}
{"durationMs":2.58,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"82e6574b-3ee8-4c1f-8b81-80397445ffc0","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 11:52:04","userId":null}
{"durationMs":56.02,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"695a9815-347a-4499-87bb-cbdc0f4fd2da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:52:04","userId":null}
{"durationMs":87.41,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"2a9fcfaf-7a31-4aa0-9ded-80f5ec564037","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:52:05","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":73.23,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9b2e8203-a42d-48fa-8fdd-bbf90edc1452","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 11:52:05","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":1387.1,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:52:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":1395.1,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:52:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":8.62,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0379c878-02fa-4377-9f8e-a33ee96a2498","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:52:05","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":474.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 11:52:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":476.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-08-25 11:52:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.74,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a80dd911-72aa-45b2-b54b-5d35839b3716","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:52:06","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 11:55:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fac1e6f5-9c53-4991-806a-a6db8cc7b0bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 11:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 12:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 12:00:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"19a9cfee-01d4-42e1-80be-6b716130b5dc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:01:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 12:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 12:05:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1f67e897-8551-460c-b718-121f372f1bb2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 12:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 12:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 12:10:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9084049c-af39-4045-af0a-6c0ce3ce62cf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 12:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 12:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 12:15:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bdc8e6bc-9809-4448-98e9-60c918005019","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 12:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 12:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:20:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 12:20:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 12:20:01","totalConnections":1}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"63e8a6d3-9a40-4eaa-a518-f83e85400a43","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 12:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 12:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 12:25:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6394f672-ff15-45c3-9897-a7747cb20fb4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 12:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 12:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 12:30:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1ca3d6eb-61db-49df-8ca6-edd306fb01aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 12:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 12:35:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"86e97ef0-a667-4f24-bfdb-a669373672f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 12:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 12:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 12:40:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2fd62758-6cb0-4ee9-8019-e0fb383904b1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 12:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 12:45:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"29496945-1ce5-4f2e-a529-49e2e48efeac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 12:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 12:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 12:50:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5773e991-e861-4e3a-a0b4-901edbdcb191","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 12:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 12:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 12:55:00","totalConnections":1}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1acc1152-a4a4-44e3-8201-210a5e5e7a82","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 12:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 13:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 13:00:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6fbb6c70-9d11-44b9-94e0-75ab9a7dbed6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 13:05:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d684bedb-5d09-4abf-b7ef-7bee000a044d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 13:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 13:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 13:10:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2adac7dd-58f2-4d33-aea3-aaee0a4dbadc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 13:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 13:15:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b83e4d98-2d2d-408b-8571-ce4b6be7fbb9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 13:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 13:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 13:20:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"56663aa3-ed66-4107-b00f-8c6c7a9d67a6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 13:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 13:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 13:25:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8c2a1d75-8f7d-4926-8326-3e506f8524d9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 13:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 13:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 13:30:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7f16435a-af5d-4fcb-9364-2ecec5a55741","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 13:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:33:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 13:35:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"40506a56-e720-4f14-8cdf-00466998aaa9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 13:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 13:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 13:40:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7fcd86c7-9cf8-4b54-878e-31f566651f93","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 13:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 13:45:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"68b31482-19ef-4eb0-b586-079c908c4d85","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 13:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 13:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 13:50:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7db1175d-7a9f-495f-b640-24caaa09cc88","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 13:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 13:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 13:55:00","totalConnections":1}
{"durationMs":1.71,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d4e5583-2eb7-4b0f-a3c0-8942f2585afc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 13:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 13:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 14:00:00","totalConnections":1}
{"durationMs":2.67,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f69bfec9-fd92-436d-a427-6a36b8f1f6a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 14:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 14:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 14:05:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"493a9e93-e14e-4b80-a886-af642e6f52f6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 14:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 14:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 14:10:00","totalConnections":1}
{"durationMs":1.71,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"68f26a4a-3d35-4362-a5d9-35c3ee77d2fa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 14:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 14:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:15:00"}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5fd562d0-7f79-4ece-9fa3-0ee474d0a766","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 14:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 14:20:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5a01e7dc-f9b0-41d6-8313-a26519af8faa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 14:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 14:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 14:25:00","totalConnections":1}
{"durationMs":1.62,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8cbf469f-57eb-48cd-a50a-4ed744efbd3b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 14:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 14:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 14:30:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2bbc6da0-e2c8-4547-be32-937e22e1e2d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 14:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 14:35:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70ecb163-45e8-4218-8eeb-1bb81356d470","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 14:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 14:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 14:40:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b6ecc2f1-5e24-418e-a6db-383c317b3f14","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 14:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 14:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 14:45:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2c04f2df-6466-44c2-8905-bd08908888ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 14:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 14:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 14:50:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"13122224-de72-4072-90e4-8b0bdc09b85e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 14:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 14:55:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1cdf80a2-721b-4293-9112-86b78b313549","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 14:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 14:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 15:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:00:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 15:00:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 15:00:01","totalConnections":1}
{"durationMs":1.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b22aa087-4201-4d71-9638-8bbf34b40cde","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 15:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 15:05:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"acb05a1c-3cb9-434f-9821-e61125c3fcde","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 15:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 15:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 15:10:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"14616995-a41f-4dd5-b101-81ca7d7896b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 15:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 15:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 15:15:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c3c72835-0a75-475a-b411-ee772dda0f57","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 15:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 15:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 15:20:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c920ad7d-32da-4563-86c0-09ff24903ab2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 15:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 15:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 15:25:00","totalConnections":1}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51878cb1-2ce5-40f9-b990-060a668e1bbc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 15:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 15:30:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8fd60a8a-894a-4ae7-91f4-204e2dcda2cf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 15:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 15:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 15:35:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9bda419f-3c0b-4b03-be6d-8125dab0e4d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 15:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 15:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 15:40:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"73b5fc99-98e8-47ad-8941-3a3f2bfd2f7b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 15:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 15:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 15:45:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4bd8f61c-aded-4d1e-8997-f54bf5524d44","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 15:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 15:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 15:50:00","totalConnections":1}
{"durationMs":2.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b2a6bf4c-6d5a-45a5-bdd9-00e2b87ebdf3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 15:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 15:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 15:55:00","totalConnections":1}
{"durationMs":1.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84c5f27e-b927-49f6-9fa4-212cdb482b21","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 15:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 15:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 16:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 16:00:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b79d5a85-88fc-452b-88a9-baf8ee9708ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 16:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 16:05:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0773320d-f7e8-4322-abe2-843e151c7e69","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 16:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 16:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 16:10:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1f39753-4246-4f8d-8b51-669bc841d77d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 16:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 16:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 16:15:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3d7af45c-2f6a-4b73-8e56-da8d8462c9f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 16:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 16:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 16:20:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d31a38de-6982-463a-89fa-fa54ef07f802","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 16:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 16:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 16:25:00","totalConnections":1}
{"durationMs":1.69,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f65f8d26-b501-476d-afa2-4c7f17d4a39c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 16:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 16:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 16:30:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"97b59ba3-6e36-40da-bf36-9ed09e488627","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 16:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 16:35:00","totalConnections":1}
{"durationMs":1.7,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1b7cec8-3ed2-4832-82d1-9f63616a8cf4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 16:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 16:40:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8bc59426-87cf-40a7-b577-e226a52fa381","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 16:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 16:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 16:45:00","totalConnections":1}
{"durationMs":2.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9689c08e-dafb-400d-8954-a47d34c926a3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 16:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 16:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 16:50:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4b3912aa-685b-4306-9b68-fa25cc85d396","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 16:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 16:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 16:55:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cca7255f-74f5-4f5a-99f9-15645849f028","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 16:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 17:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 17:00:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"059d9406-6e7c-4ec1-a944-c30e42d9b6a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 17:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 17:05:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"182fa760-6ef3-425c-bf61-5897c6d1f261","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 17:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 17:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 17:10:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"acd4675c-1b29-470c-b1a8-323b9178bc72","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 17:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 17:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 17:15:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0721555-4e7a-44dd-aebb-b67277c54032","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 17:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 17:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 17:20:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e3f55816-56bd-45d3-b585-7c5a52bab5de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 17:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 17:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 17:25:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"29c4e244-d602-44c9-872a-e1e786033ad8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 17:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 17:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 17:30:00","totalConnections":1}
{"durationMs":2.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"96e63b4c-b55d-4ce4-85be-a33a3cc8676a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 17:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 17:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 17:35:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92caa42b-1450-4ff8-958f-1bcca2b31126","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 17:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 17:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 17:40:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4dd256e2-b639-4e58-9d1e-b8823257fd2d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 17:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 17:45:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72a8ab4a-a591-44ba-ae36-0c3adaba915a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 17:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 17:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 17:50:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"81697b0e-2049-4fb1-869f-47efa2b15916","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 17:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 17:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 17:55:00","totalConnections":1}
{"durationMs":1.62,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"57ef4a91-3d62-4c01-84dc-84645c402a85","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 17:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 18:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 18:00:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"098fc452-e6d8-4213-a169-2e4047c36965","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 18:05:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2ffdc069-7c02-4a38-b1dc-71e60b9b016e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 18:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 18:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 18:10:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1dea1285-70ae-4fd5-af13-f137ac5c1bfd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 18:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 18:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 18:15:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d7fce7a9-17d2-45f7-be1a-2acf5be16f39","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 18:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 18:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 18:20:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e802b8ce-3212-488c-b656-db53c78c8dc6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 18:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 18:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 18:25:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"851bfed3-918b-4c44-a4a6-e60a11c4f85b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 18:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 18:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 18:30:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"987f3d1a-ae33-4805-8e8c-1a65c2914808","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 18:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 18:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 18:35:00","totalConnections":1}
{"durationMs":1.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"89114227-b589-416b-a614-5836cf5edc97","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 18:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 18:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 18:40:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51c21a76-9f8c-46b6-9afa-6bdecc0261bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 18:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 18:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 18:45:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6903ffff-dc26-4c91-bd34-6409813ab71b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 18:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 18:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 18:50:00","totalConnections":1}
{"durationMs":1.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"74b932c6-2d02-4133-85a3-e597d1454bd3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 18:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:52:00"}
{"durationMs":2.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b385ea34-0d34-4ef2-a020-fde7a5d00098","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 18:52:50","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 18:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 18:55:00","totalConnections":1}
{"durationMs":2.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2ae594cc-f7e9-4be2-acd0-09fd57bbf079","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 18:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 19:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 19:00:00","totalConnections":1}
{"durationMs":1.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a2d9514e-ecb3-4694-9904-717eca8c370b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 19:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 19:05:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4971a385-ca3f-40dd-b8de-2f3e046d13a7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 19:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 19:10:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6290439d-bff8-46a4-b288-2995b7459849","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 19:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 19:15:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e12c81a8-de1a-4cb0-852a-218bb19b9ee8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 19:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 19:20:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0d78301d-d812-448c-8192-7b348f00b527","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 19:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 19:25:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6166bec2-9eee-449f-82bc-52a146e69c67","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 19:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 19:30:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d2bda918-d0bd-4ef2-a36a-0c4baa50f8a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 19:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 19:35:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12d7f676-ab8b-445f-ab54-f770d4220103","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:39:00"}
{"durationMs":1.76,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae89a346-f402-43e5-a90a-9bcf4162bccc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:31","userId":null}
{"durationMs":5.15,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"a382b1be-215d-4352-89ba-8cd2f0054806","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 19:39:32","userId":null}
{"durationMs":1.52,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"a66606ea-0f1f-4286-b973-d77a02ede9c2","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 19:39:32","userId":null}
{"durationMs":1.45,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"438c0fe3-d638-49cf-840b-165ad236ac18","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 19:39:32","userId":null}
{"durationMs":1.39,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"92e55335-6bf7-4f1d-91c4-cd6c5f53e0c4","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 19:39:32","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-08-25 19:39:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/","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-08-25 19:39:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":3.82,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d5171c88-6de3-4b5e-93d1-e301491221e3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:32","userId":null}
{"durationMs":1.48,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"e989883d-76b3-4540-ba3b-60d446945700","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 19:39:32","userId":null}
{"durationMs":1.24,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"dfcf0f72-bc6c-4942-a7ad-bf374732a207","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 19:39:32","userId":null}
{"durationMs":1.23,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"907d3635-604c-49b5-9318-d3d05f392b85","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 19:39:32","userId":null}
{"durationMs":1.1,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"7e7a6bb0-4cd7-4947-b359-7bef8561d274","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 19:39:32","userId":null}
{"durationMs":1.26,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"3781146a-ba7d-4887-8588-af49732f80d1","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 19:39:32","userId":null}
{"durationMs":1.17,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"468e041b-5699-4959-8bf7-a353edcd5be8","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 19:39:32","userId":null}
{"durationMs":1.14,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"18e1a63c-f949-4ca2-bc10-b3569c4d5a1c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 19:39:32","userId":null}
{"durationMs":1.14,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"7cac2a91-ba2f-4401-89c2-f4e6f9c12b95","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 19:39:32","userId":null}
{"durationMs":144.1,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"de816cd5-62c6-4212-9dcf-deb7d7d16ed6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:32","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":425.4,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":427.8,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":428.5,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":429.2,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/revenue-trend"},"durationMs":371.8,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/stats"},"durationMs":380.2,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communications/sms/settings"},"durationMs":386.8,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/school/mpesa-config"},"durationMs":387.3,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/recent-activities"},"durationMs":387.7,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/attendance-trend"},"durationMs":397.8,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/grade-distribution"},"durationMs":398.2,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communications/whatsapp/status"},"durationMs":398.4,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":185.82,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e9563c6e-f1bf-4611-a8a3-6b52ce6dbc28","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":657.45,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"653026b5-905b-4545-9b33-c176d86cd0d1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:39:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":712.07,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"8f0562b7-b045-458b-ae13-573308e18483","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:39:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":853.73,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"a9d8e21d-88f1-4fc2-9e99-d7e8c0fd29ed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":891.32,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"7e0e7bce-55a6-4a2e-9210-6dbdceadc674","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":881.15,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"5b2e9961-1e77-45b3-8f01-3dfcfb87d3df","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:39:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":866.35,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a426f4ad-1e6e-4ef7-a7cd-42337fd79273","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:39:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":798.32,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"ce8725b4-2d03-4f18-8ecb-89d860c6e108","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:39:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":894.96,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"cb2c99e2-a616-4a16-9943-25f3228bb10c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:39:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":837.85,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"99320c89-16c4-4420-9934-3bdb88781f21","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:39:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":930.84,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"160624b3-d1ca-4ed3-9b46-518141076f8a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":873.3,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"c22f6612-a138-416a-a773-eab6136400d4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":922.25,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"3f48db25-8d40-4524-9952-45b2a27cb4a8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1113.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1127.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-08-25 19:39:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1260.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-08-25 19:39:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1279.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-08-25 19:39:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1310.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-08-25 19:39:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1316.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-08-25 19:39:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1406.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1406.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-08-25 19:39:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1407.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1407.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-08-25 19:39:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1408.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1408.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-08-25 19:39:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.57,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"753939a6-1a57-4a36-b892-0cf0cc2d9631","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academic/calendar","navId":"1787675982418-244276","text":"Calendar & Sessions"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/academic/calendar","navId":"1787675982418-244276","text":"Calendar & Sessions","to":"/dashboard/academic/calendar"},"durationMs":805,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787675982418-244276","to":"/dashboard/academic/calendar"},"durationMs":805,"event":"NAV_STALL","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.3,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b9427fc9-afa7-4074-9a3b-5b00babb6555","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":87.8,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"8f1e390d-0339-47e1-b1a7-c934e0c601b5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":153.67,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/holidays?year=2026","requestId":"9b0bd7bc-2426-4f16-aaf1-e890a228ce23","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":170.95,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/summary","requestId":"a55d93f8-64e7-45b6-b3bb-22f966885947","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":165.87,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/events?startDate=2026-07-24T21:00:00.000Z&endDate=2026-09-07T20:59:59.999Z","requestId":"35a86142-bf9d-4e7a-8d83-561cbdf8432b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787675982418-244276","to":"/dashboard/academic/calendar"},"durationMs":839,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":468,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/holidays"},"durationMs":534.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/summary"},"durationMs":540.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-08-25 19:39:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/events"},"durationMs":547.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.23,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"abe57190-4c96-4562-9ac7-26eb964288ec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Academic Years & Sessions","name":null,"type":null},"durationMs":46,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.93,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"81ce9c44-bd79-4339-8742-315e1fa298f0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":82,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.4,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c4e59c56-46d7-4b6c-97bc-138dd6cd7320","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.45,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"DELETE","path":"/api/v1/academics/years/a32bb545-7476-4712-a38e-0c82cd710105","requestId":"68c2d2b6-5ba4-40a6-a196-f0ad58d2803d","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-25 19:39:54","userId":null}
{"data":{"id":null,"label":"Delete Year","name":null,"type":"button"},"durationMs":8,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"DELETE","status":404,"url":"/academics/years/a32bb545-7476-4712-a38e-0c82cd710105"},"durationMs":368.7,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:39:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.65,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dc3d24b6-d3c9-4a9f-82a3-188e78ca3c4e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:39:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 19:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 19:40:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cdde4db6-059e-4099-a124-b1dba2b47f10","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 19:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 19:45:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"231e293b-0499-4f3b-9cab-ee6399fe9335","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:46:00"}
{"durationMs":107.15,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"7d236baf-dade-4224-b0b9-619d9ac7e49a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:46:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":117.87,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"c3e908f4-730d-46b3-b558-2c7b532663a0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:46:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1217.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:46:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1219.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:46:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.05,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"30ea1b67-6e20-4c39-9f3b-e3a912a5157e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:46:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:47:00"}
{"data":{"id":null,"label":"Edit","name":null,"type":null},"durationMs":109,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:47:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.61,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e774a8cf-8363-4955-862e-acff28c715cc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:47:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":274.92,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c5e1da5b-73e1-4d5e-a28b-3b83612abeaf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:47:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":239.85,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e643cb63-b476-4cee-994a-a50e4d6a783b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:47:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.66,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"PATCH","path":"/api/v1/academics/years/cmp8gtpm300d48bcnc9mas3i7","requestId":"582a0bb1-2d8a-41c4-a596-848c8c1ed632","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-25 19:47:52","userId":null}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":640.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:47:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":636.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-08-25 19:47:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Update Year","name":null,"type":"submit"},"durationMs":11,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:47:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.4,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0fa6bb5e-81ee-4149-8186-7b840f34631c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:47:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"PATCH","status":404,"url":"/academics/years/cmp8gtpm300d48bcnc9mas3i7"},"durationMs":381.6,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:47:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.46,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c9961796-5da3-4ab4-9af7-b9a8d45c34fd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:47:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 19:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 19:50:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"946d443f-9c63-45a3-8566-47bcdbef799a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:52:00"}
{"durationMs":0.89,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e2ff5fca-8f74-4c6d-a78f-bb7cb1175327","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:17","userId":null}
{"durationMs":538.98,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"c9cc5f0d-a7e0-4352-bc54-9704bf58d101","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":824.52,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/items?lowStock=true&limit=10&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"3e035959-0eb2-4197-90bb-b4aed2c47de3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":800.46,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/items?limit=10000&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"61db34dd-7add-4cc4-9a39-7450e449bfb6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":840.22,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/stats?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"89a88b8b-a644-4b9d-a6b9-1ea076135a56","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":874,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/transactions?limit=10&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"d7dfca35-9cd7-47e7-84cd-ac2308596ab3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":846.89,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/purchase-orders?limit=5&sortBy=createdAt&sortOrder=DESC&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"94116dcd-3590-4ecd-a780-db38feb80332","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":858.06,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"c84f7bb7-7999-4902-8137-7375543e5689","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":803.04,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"79cd942c-26f9-430e-b32a-712b9fc8f9e1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":742.22,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"56433924-eb3f-4a49-9a79-4a4e02353291","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.63,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/departments?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"55dc81ca-ea37-4738-9042-4140e8540d54","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1020.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-08-25 19:52:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/items"},"durationMs":1319.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-08-25 19:52:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/items"},"durationMs":1331.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-08-25 19:52:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/stats"},"durationMs":1343.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-08-25 19:52:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/purchase-orders"},"durationMs":1361.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-08-25 19:52:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1362.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-08-25 19:52:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1363,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/transactions"},"durationMs":1363.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-08-25 19:52:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1370.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-08-25 19:52:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Items","name":null,"type":null},"durationMs":97,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.91,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"48743482-5f64-4e28-91ee-cd3320e09344","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/departments"},"durationMs":422.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Stock Level","name":null,"type":null},"durationMs":77,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.63,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a3b2c8ff-dcdd-408e-a456-b9075f76cda0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.65,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/suppliers?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"0d8747b7-f633-4d78-aee8-1cc314da3eb8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Suppliers","name":null,"type":null},"durationMs":48,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/suppliers"},"durationMs":438,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.88,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fef32103-ff6c-4dcd-866b-6108321ec47b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":78.73,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/purchase-orders?page=1&limit=10&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"784cd1fa-6bcb-492e-8dc2-f14a5c76cf90","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":73.88,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/suppliers?limit=1000&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"dfab7213-dfb8-4965-b27b-603b0b517759","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Purchase Orders","name":null,"type":null},"durationMs":47,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/purchase-orders"},"durationMs":492.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/suppliers"},"durationMs":492.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-08-25 19:52:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.12,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"59e85875-fde1-4362-a6c9-18acf1c5522c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":101.96,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/grn/pending?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"bba792d0-e12e-4ab0-9281-d388b0c0fdd9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":115.47,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/grn?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"0cdabeda-00ed-4296-9ce7-3e4ddb8deb59","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":114.85,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/grn/stats?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"1f38ec8f-27d8-42c7-b886-a30ab6d67952","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":103.28,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/purchase-orders?status=APPROVED,SENT,PARTIAL&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"5d17f76b-f37b-451b-904e-2c6c7cc50da3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Goods Received","name":null,"type":null},"durationMs":22,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/grn/pending"},"durationMs":536,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/grn?schoolId=cmp8gtb7j00008bcnd6vyf567"},"durationMs":541.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/grn/stats"},"durationMs":552.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/purchase-orders?status=APPROVED,SENT,PARTIAL"},"durationMs":555.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-08-25 19:52:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.73,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ab06d055-40af-4356-bd62-4c4a10af6b08","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":103.19,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/purchase-orders?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"c7f43e20-8535-473e-b63e-75736b8c09c7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":99.37,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/suppliers?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"539b7c5c-89a6-43f4-8d36-4991ed1a24b3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":119.61,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/invoices?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"5a54ed19-ef3f-470b-bd84-61816e18458f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":129.66,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/invoices/stats?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"e5e5a964-247b-4501-85fa-c911c8686247","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Invoices","name":null,"type":null},"durationMs":22,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/purchase-orders"},"durationMs":465.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-08-25 19:52:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/suppliers"},"durationMs":473,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/invoices?schoolId=cmp8gtb7j00008bcnd6vyf567"},"durationMs":502.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-08-25 19:52:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/invoices/stats"},"durationMs":503.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-08-25 19:52:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":34.03,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"43575f9a-1a83-477e-bdad-fcc9279fed6b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.54,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/settings?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"eafb16ee-133b-4c7f-8f59-41a109eca20a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-08-25 19:52:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":18,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/inventory/settings"},"durationMs":469.9,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.57,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6ec59865-b4b5-4fcb-a6a1-ea5f5cfcce05","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":44.52,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/settings?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"d55eae47-7dc2-4194-8f69-6a1e5c052efc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-08-25 19:52:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/inventory/settings"},"durationMs":424.7,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.5,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f7180de0-3070-453c-acb8-e235d1c518cc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1787676752499-448329","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/inventory","href":"/dashboard","navId":"1787676752499-448329","text":"Dashboard","to":"/dashboard"},"durationMs":549,"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-08-25 19:52:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/inventory","navId":"1787676752499-448329","to":"/dashboard"},"durationMs":549,"event":"NAV_STALL","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/inventory","navId":"1787676752499-448329","to":"/dashboard"},"durationMs":581,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.28,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e88b7bb5-15ad-4ddb-adb3-4195da4d26d3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":163.36,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"8bd33449-0a9e-4ab9-8a2f-7a73f8415c7f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":218.05,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"d15a6555-4898-40d8-87b4-b06ff6988755","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":266.76,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"5c3e68ef-cb7d-4dc0-ba33-895cbb38d894","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":277.65,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"8701f32f-8426-4948-b79d-264e10cff2f3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":240.08,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"0039c2a6-8b0e-45ab-a494-cdb9307eee49","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":212.9,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"77d55a65-3687-40b1-b084-2864ece98232","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:52:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":283.17,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"8e4d8f78-fca7-41c2-a88a-9b16ba3be1bb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":267.7,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"8801e226-9a1a-4024-bd9e-7a76849259f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":708.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":714.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-08-25 19:52:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":715.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-08-25 19:52:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":746.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-08-25 19:52:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":753.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":849.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-08-25 19:52:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":850.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-08-25 19:52:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":850.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-08-25 19:52:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.82,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"15a6bbd2-35bf-4638-a92e-f4462ebf6e77","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1787676755461-878961","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.25,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"094137da-38fb-4e0e-aa14-d41ca97d1ef4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":158.11,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"e4a60b7c-3db9-403a-88c0-aa7628d7158e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":185.84,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"437f0045-b715-43ad-b389-c78172c1a952","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":195.7,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"669f33b0-0b56-4a5c-be78-d0748a4afac5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/students","navId":"1787676755461-878961","text":"Students","to":"/dashboard/students"},"durationMs":954,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787676755461-878961","to":"/dashboard/students"},"durationMs":954,"event":"NAV_STALL","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787676755461-878961","to":"/dashboard/students"},"durationMs":1000,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":558.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:52:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":573.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-08-25 19:52:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":632.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-08-25 19:52:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.14,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bf11d42c-ef26-4514-8bb0-4fbdc4663a3f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f9ffaef2-1d86-451e-a467-e08815a1902a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:48","userId":null}
{"durationMs":1.41,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc593c90-d1bc-4ecd-8368-0cb3221e68aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:52:59","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:53:00"}
{"durationMs":92.4,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"40860a56-60eb-4679-8a09-047363c7a277","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:53:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":105.89,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"c3b10156-9e42-412e-8c80-6f0dbc520512","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:53:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":142.76,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"026fab42-1157-4b74-bc32-50a48470c15c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:53:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":250.24,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"fa6f9577-2099-468f-8812-35233f49d8e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:53:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":216.46,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"f22b1456-a490-4794-837b-b1f60728bc1c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:53:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":226.76,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"bfa62f1c-dce3-4e1c-a22e-92aab50e2be5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:53:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":246.81,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"a8757678-e4fe-41b2-88be-2bbe7cbab093","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:53:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":259.75,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"30532638-a183-4f09-872e-85194a7c6d1b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:53:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":550.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-08-25 19:53:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":576.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-08-25 19:53:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":577.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:53:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":637.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-08-25 19:53:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":643.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-08-25 19:53:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":660.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-08-25 19:53:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":688.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-08-25 19:53:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":691.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-08-25 19:53:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.85,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9dd5535a-20f9-4e9e-a2df-a9bf7ffb7b85","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:53:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academics","navId":"1787676790816-501284","text":"Grades & Streams"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:53:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.46,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a3ca0525-6613-4a7b-b2f9-029d3fc48466","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:53:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":42.57,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"b0dfd47c-ded0-47b1-bef0-f6d2db21b038","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:53:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","href":"/dashboard/academics","navId":"1787676790816-501284","text":"Grades & Streams","to":"/dashboard/academics"},"durationMs":905,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:53:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":"1787676790816-501284","to":"/dashboard/academics"},"durationMs":905,"event":"NAV_STALL","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:53:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":"1787676790816-501284","to":"/dashboard/academics"},"durationMs":929,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:53:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":451.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-08-25 19:53:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.82,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d7aa933f-038f-4879-bc4a-54b5a6e9b828","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:53:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":13,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:53:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":7,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:53:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.05,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c812663a-b2d6-434c-85d4-a43a29e34fd6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:53:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academic/calendar","navId":"1787676827877-323848","text":"Calendar & Sessions"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:53:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.45,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d87ad248-4200-4ad3-8d88-4bd8c78701c1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:53:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.76,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"1d1a9cd1-aa30-4f3c-bfec-8cac2f59fe1b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:53:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":148.49,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/events?startDate=2026-07-24T21:00:00.000Z&endDate=2026-09-07T20:59:59.999Z","requestId":"cd854e90-86d5-420c-9d54-e8f8f1de0bd2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:53:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":186.48,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/holidays?year=2026","requestId":"0b49f09d-3ec6-4a73-821c-c5989a17dffe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:53:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":182.81,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/summary","requestId":"a9132922-918f-4ff5-a885-b78e1abdab50","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:53:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics","href":"/dashboard/academic/calendar","navId":"1787676827877-323848","text":"Calendar & Sessions","to":"/dashboard/academic/calendar"},"durationMs":836,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:53:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics","navId":"1787676827877-323848","to":"/dashboard/academic/calendar"},"durationMs":836,"event":"NAV_STALL","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:53:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics","navId":"1787676827877-323848","to":"/dashboard/academic/calendar"},"durationMs":855,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:53:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":485.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:53:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/events"},"durationMs":582.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-08-25 19:53:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/holidays"},"durationMs":604.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:53:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/summary"},"durationMs":605.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:53:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.83,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6d09bec1-2c11-4c78-bce5-4916c9f37295","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:53:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Academic Years & Sessions","name":null,"type":null},"durationMs":37,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:53:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.73,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d5263b01-df9e-42fd-8ff4-9d534bec60fb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:53:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Edit","name":null,"type":null},"durationMs":93,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:53:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.13,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"23bc3263-d122-4be2-99db-ee61a515be03","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:53:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:54:00"}
{"data":{"id":null,"label":"Close","name":null,"type":"button"},"durationMs":9,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:54:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.86,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"96f28dd4-b88e-436c-92d3-63fd8be26615","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:54:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":214.66,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f82953c4-2950-4a9b-8d37-d58416549345","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:54:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":195.63,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"65478db4-e042-4fbe-8d4e-133094a4d5e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 19:54:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":77,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:54:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":574.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-08-25 19:54:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":575,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:54:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.68,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fc2ac698-3612-450b-bc46-2164b879dd2f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:54:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.21,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"DELETE","path":"/api/v1/academics/years/a32bb545-7476-4712-a38e-0c82cd710105","requestId":"ea8d7762-95a1-4c75-8cc1-0d88e0b8c364","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-25 19:54:03","userId":null}
{"data":{"id":null,"label":"Delete Year","name":null,"type":"button"},"durationMs":7,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:54:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"DELETE","status":404,"url":"/academics/years/a32bb545-7476-4712-a38e-0c82cd710105"},"durationMs":355.2,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:54:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.63,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2d581991-6a30-4271-bf5e-ff6da5435996","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:54:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Edit","name":null,"type":null},"durationMs":87,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:54:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.97,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"74502fd7-f8e9-4c1f-ae1f-cfb572195f02","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:54:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.21,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"PATCH","path":"/api/v1/academics/years/cmp8gtpm300d48bcnc9mas3i7","requestId":"637066a6-d8df-4524-9f91-59fcb4e9f54c","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-25 19:54:15","userId":null}
{"data":{"id":null,"label":"Update Year","name":null,"type":"submit"},"durationMs":10,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:54:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"PATCH","status":404,"url":"/academics/years/cmp8gtpm300d48bcnc9mas3i7"},"durationMs":440.5,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 19:54:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.02,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"07eb76a0-1a77-45ee-af67-cd0902f32dab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:54:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 19:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 19:55:00","totalConnections":1}
{"durationMs":1.66,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1c00b49a-bfb4-4d66-a581-cea9fd816a8b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 19:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 19:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 20:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 20:00:00","totalConnections":1}
{"durationMs":2.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"82d89202-a711-487e-b636-76bd2efb21ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:00:01","userId":null}
{"durationMs":3.52,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"dd28e048-989c-4740-ae02-76f1b810f9f6","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 20:00:02","userId":null}
{"durationMs":3.58,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"fe76e3da-4e38-469d-bb92-a046f232e565","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 20:00:02","userId":null}
{"durationMs":42,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"b2f0eaf8-2205-4a52-81ce-3aed424b07e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:00:03","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":2106,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:00:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":2108.6,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:00:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":72.01,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d3ca1cb5-f881-4b63-ab4f-d88db709abcf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:00:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":352.54,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ee27ef71-fc1d-472d-8e6a-6d052c1f36d5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:00:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":359.34,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"8445a582-ce27-47d8-bce3-59ae31bc1361","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:00:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":841.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:00:06","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":843.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:00:06","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.51,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b32a5f37-f59b-4538-85d8-caca8bf9a47d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:00:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:02:00"}
{"durationMs":2.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6798f959-9818-4051-bfd2-10a2cd31fb89","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:02:06","userId":null}
{"durationMs":1.51,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e50f4109-3df7-41f5-93eb-d07d64b39fc2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:02:46","userId":null}
{"durationMs":562.49,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"3bc050f9-2481-443c-9686-a4f516f73481","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:02:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":392.88,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"8f29e87f-5d19-4bfe-b8ef-01b8a7f86ddc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:02:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":725.81,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9ab123d7-8d60-4b7a-b884-5ab229863647","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:02:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":712.21,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"784d9700-e7c2-4810-bee7-ea115fef01f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:02:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":631.4,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"3e58195a-db8a-4542-8a44-c15ab4b5d24f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:02:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":660.12,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/holidays?year=2026","requestId":"bb175f3a-5bba-44c1-bcae-e867e4b276d5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:02:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":692.28,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/events?startDate=2026-07-24T21:00:00.000Z&endDate=2026-09-07T20:59:59.999Z","requestId":"6422f826-5860-41bf-9ee6-2327513602a1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:02:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":738.47,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/summary","requestId":"17ea4b6e-a595-471c-8e93-b176265dd2ad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:02:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":914.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-08-25 20:02:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":926.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-08-25 20:02:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1085.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-08-25 20:02:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1087.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:02:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1089.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-08-25 20:02:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/holidays"},"durationMs":1094.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-08-25 20:02:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/events"},"durationMs":1099.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-08-25 20:02:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/summary"},"durationMs":1103.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:02:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.38,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"eb50c3af-edea-4fad-93c4-35dee5c80be8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:02:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":113,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:02:53","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.19,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3c29308d-e842-4e94-8e93-216346eec720","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:02:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Close","name":null,"type":"button"},"durationMs":10,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:02:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.64,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4dd89fca-169d-4f56-bd79-6bdef3781d1a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:02:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Edit","name":null,"type":null},"durationMs":96,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:02:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.66,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"be226451-63dc-436d-abc8-f026fc4f4d9d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:02:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:03:00"}
{"body":{"endDate":"2025-11-30","isCurrent":true,"startDate":"2025-01-01","year":"2026"},"error":"Cannot read properties of undefined (reading 'parse')","ip":"102.0.24.50","level":"error","message":"API Error:","method":"PATCH","service":"cbc-sms","stack":"TypeError: Cannot read properties of undefined (reading 'parse')\n    at /home/aereuxky/cbcsms-backend/src/middleware/validate.middleware.js:10:25\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/rbac.middleware.js:13:14\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 authenticate (/home/aereuxky/cbcsms-backend/src/middleware/auth.middleware.js:117:3)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)","timestamp":"2026-08-25 20:03:02","url":"/api/v1/school/academic-years/cmp8gtpm300d48bcnc9mas3i7","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.65,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"PATCH","path":"/api/v1/school/academic-years/cmp8gtpm300d48bcnc9mas3i7","requestId":"1f0b91b7-d99b-4943-9101-0ef48a6a3a0a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-08-25 20:03:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Update Year","name":null,"type":"submit"},"durationMs":10,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:03:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"PATCH","status":500,"url":"/school/academic-years/cmp8gtpm300d48bcnc9mas3i7"},"durationMs":402.6,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:03:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.18,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dedce529-1154-47fb-86a3-a435299c31f2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:03:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"endDate":"2025-11-30","isCurrent":true,"startDate":"2025-01-01","year":"2026"},"error":"Cannot read properties of undefined (reading 'parse')","ip":"102.0.24.50","level":"error","message":"API Error:","method":"PATCH","service":"cbc-sms","stack":"TypeError: Cannot read properties of undefined (reading 'parse')\n    at /home/aereuxky/cbcsms-backend/src/middleware/validate.middleware.js:10:25\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/rbac.middleware.js:13:14\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 authenticate (/home/aereuxky/cbcsms-backend/src/middleware/auth.middleware.js:117:3)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)","timestamp":"2026-08-25 20:03:09","url":"/api/v1/school/academic-years/cmp8gtpm300d48bcnc9mas3i7","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.38,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"PATCH","path":"/api/v1/school/academic-years/cmp8gtpm300d48bcnc9mas3i7","requestId":"4fc67ca5-64af-4e74-ab2c-034eccdc7db7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-08-25 20:03:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Update Year","name":null,"type":"submit"},"durationMs":8,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:03:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"PATCH","status":500,"url":"/school/academic-years/cmp8gtpm300d48bcnc9mas3i7"},"durationMs":436.2,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:03:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.95,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7d4a7ed2-63ed-4dc7-97a6-e601025cb2e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:03:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 20:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 20:05:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"337528a8-2495-44bd-9eb8-2b5c24b90132","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 20:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 20:10:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eba215a4-4f34-477b-88bf-ef497eeab880","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 20:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 20:15:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2bd79067-887c-4929-b085-cb2fb824c42c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:15:01","userId":null}
{"level":"info","message":"Redis not configured, continuing without cache","service":"cbc-sms","timestamp":"2026-08-25 20:21:14"}
{"level":"info","message":"Serving frontend static files from: /home/aereuxky/cbcsms-backend/public","service":"cbc-sms","timestamp":"2026-08-25 20:21:16"}
{"level":"info","message":"Testing database connection...","service":"cbc-sms","timestamp":"2026-08-25 20:21:16"}
{"level":"info","message":"✓ Sequelize database connection established successfully","service":"cbc-sms","timestamp":"2026-08-25 20:21:16"}
{"level":"info","message":"✓ Database connected successfully","service":"cbc-sms","timestamp":"2026-08-25 20:21:16"}
{"level":"info","message":"✓ Database schema loaded (models initialized)","service":"cbc-sms","timestamp":"2026-08-25 20:21:16"}
{"level":"info","message":"✅ Socket.IO initialized for real-time notifications","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"✅ Scheduled Messages cron job initialized (runs every minute)","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"[Email Queue Job] Initializing 24/7 background worker (interval: 15000ms)...","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"✓ [Email Queue Job] Background worker active","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"✅ Weekly fee clearance email job initialized (runs every Monday at 9:00 AM)","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"[Subscription Job] Initializing 24/7 Subscription Reminder Background Worker...","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"✓ [Subscription Job] Subscription reminder worker registered and active","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"Initializing integration sync cron job","schedule":"*/5 * * * *","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"Integration sync cron job initialized successfully","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"✅ Background worker jobs initialized (Email Queue 24/7 active)","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"✅ Guardian Email Worker started (enforcement mode)","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"============================================================","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"🚀 CBC SMS Server started successfully","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"📍 Environment: production","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"🌐 Server: http://0.0.0.0:5000","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"💾 Database: Connected (Sequelize ORM)","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"✨ Tables: 169 models loaded","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"============================================================","service":"cbc-sms","timestamp":"2026-08-25 20:21:17"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-08-25T17:21:27.819Z","service":"cbc-sms","timestamp":"2026-08-25 20:21:27"}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-08-25 20:21:27"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-08-25 20:21:27"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-08-25 20:21:27"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-08-25 20:21:27"}
{"durationMs":12.77,"ip":"102.212.247.98","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health","requestId":"4b8c7fa1-05e7-4153-9e7a-5dddb0f8c8cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:21:40","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:22:00"}
{"durationMs":3.81,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health","requestId":"ca78d000-3ed5-42ea-9cb7-2e49833b61da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:27","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":5,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-25 20:22:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":4.45,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f6530125-31bb-4a47-92cd-1df1175c4d0a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:54","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":3,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-25 20:22:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":25,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-25 20:22:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":4.11,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"79811aae-dcc3-4d7a-a002-ab94685432bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:55","userId":null}
{"durationMs":1125.24,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"9341aafe-bae2-4621-b689-feca64fd41b7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:55","userId":null}
{"durationMs":86.23,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"446413a5-2656-4227-8df0-55da23113913","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":130.82,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"3d789b85-c1b7-441a-a813-795619081959","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":167.94,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4a577047-c120-4f5d-aaed-5b3d2b008dd5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":198.62,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"c1e90156-7ba8-4e11-ab20-10384f2b1db5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":309.51,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"d9bf84ac-732d-4ca6-8fdc-375fb554dd86","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":355.34,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"057d8abc-7f67-40dd-ae94-c5f47f2d8502","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":392.51,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b79dba26-5495-420c-8b2f-f32c0f671b45","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":397.3,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"40b4fb67-12f2-4faa-89d0-1d177d76c0b0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":385.63,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"30f37101-47f1-42c5-ad12-da74a9e086f5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":390.45,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"06eadbd7-8bef-47a7-8395-c22020e989d7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":541.14,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"3e1a7e52-d7ff-4854-af26-4694f43234ce","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":67.34,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"6f0ab703-e212-43b3-98b1-1663b2be3f97","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":317.32,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"a5cdf1e7-c663-4827-af90-d111bf584018","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":359.39,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"311d3f74-1333-458a-bbae-308bb4cab5da","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":203.46,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"c18fb4e8-57b5-4327-a620-53b00e5c43af","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":341.8,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"709e7d7b-ae9f-41fe-a491-6b4127fe4d9d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":49.94,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"a310f120-6cab-4dec-9bfd-9b3460fe82d3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.4,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"6636e3bc-9b01-4b78-9e61-93c141f9e7af","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1501.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"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-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"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-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":526.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-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":601.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-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":634.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.44,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"661b9c05-97f8-4472-92ac-47df51b7785f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1523.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1545.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1574.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-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1575.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-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1589.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1669.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-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1746.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1748,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1378.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-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":1483.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-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1940.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-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1537.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-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1993.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1600.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-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":1622.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:22:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.75,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"75aac34c-6ad3-4c99-9e0e-0150283edf0a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:22:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:23:00"}
{"durationMs":167.22,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/events?startDate=2026-07-24T21:00:00.000Z&endDate=2026-09-07T20:59:59.999Z","requestId":"c3735ecb-a4cc-4dc4-a5b2-aeea4f1dafab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":152.08,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"33a1a114-55d5-4f21-b4ab-f764cee84649","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":413.46,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/holidays?year=2026","requestId":"8fe4d58c-9c69-4086-80ab-a447702facc6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":436.72,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/summary","requestId":"fa290df4-1d93-4e15-8c66-3cbe09ca4396","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academic/calendar","navId":"1787678578526-665700","text":"Calendar & Sessions"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:23:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/academic/calendar","navId":"1787678578526-665700","text":"Calendar & Sessions","to":"/dashboard/academic/calendar"},"durationMs":69,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:23:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787678578526-665700","to":"/dashboard/academic/calendar"},"durationMs":91,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:23:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/events"},"durationMs":555.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-08-25 20:23:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":641.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:23:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.05,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2933d525-a481-409e-839f-056396739294","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/holidays"},"durationMs":899,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:23:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/summary"},"durationMs":904.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:23:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.92,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fa2b3eab-832c-405e-96c1-cfd2d0fc087c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Academic Years & Sessions","name":null,"type":null},"durationMs":41,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:23:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.51,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e97ab71b-2be7-4480-b161-9f4349ab5706","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Edit","name":null,"type":null},"durationMs":79,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:23:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.77,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"30e15f11-6bcf-4e1c-8393-278243e569a1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":171.81,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"PATCH","path":"/api/v1/school/academic-years/cmp8gtpm300d48bcnc9mas3i7","requestId":"5b90b5d6-5895-4698-bed4-9a0ec89c4a5f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":43.4,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"ca59ee51-681a-4369-a3aa-2b0d128829d4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":97.15,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"4aede897-a120-4727-b20d-920cac3f93f3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Update Year","name":null,"type":"submit"},"durationMs":8,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:23:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"PATCH","status":200,"url":"/school/academic-years/cmp8gtpm300d48bcnc9mas3i7"},"durationMs":573.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-08-25 20:23:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.23,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"259a10cb-84b4-4cad-8a73-8d3a1e75ed8c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":29.98,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"f009a5a4-13dd-4eb7-8bad-1f15424d1bd4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:23:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":433.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-08-25 20:23:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":488.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-08-25 20:23:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":843.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:23:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.86,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0cdf601a-08f7-42c7-9692-d22c98cfaaca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":83,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:23:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.62,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"696f80f6-2be5-468a-afea-6a10b4bdba42","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":85,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:23:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":32.38,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d6650034-72cc-413c-b5c5-b4853fb326f3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":104.72,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"PATCH","path":"/api/v1/school/terms/cmp8gtpme00d68bcnq5m8mk8x","requestId":"941899ae-68dd-42a7-8f0e-968b8e6ccdfb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Update Term","name":null,"type":"submit"},"durationMs":9,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:23:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.01,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"646b1038-3d72-49a0-8c31-6aaedd063abf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":142.19,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"5409cb49-9f31-4452-bab7-e6180aca06a4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":164.35,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"23fff61c-9bc6-4080-b869-6ef024fed256","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.3,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"0cf37ec0-72a8-4791-88c3-e40c6f066369","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:23:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"PATCH","status":200,"url":"/school/terms/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":1606.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:23:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":548.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-08-25 20:23:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":552.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-08-25 20:23:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.01,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a85b132f-d632-43da-979b-133f0dc94245","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":942.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-08-25 20:23:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.63,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4039ff0a-328a-4c65-9909-3198b1194da2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.39,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"bf79e95c-fa01-4db1-8735-3029d2e64a2e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:23:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":485.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-08-25 20:23:59","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.92,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1d5ee743-7ec0-46d0-9dcc-f0353e5a0af7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.53,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"9b3dee83-c4a8-49da-af10-5e301dca9a30","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:23:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":85,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:23:59","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1690.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-08-25 20:23:59","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.05,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"903fde66-2ea2-49f3-b3dd-31f14651bc58","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:23:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:24:00"}
{"data":{"id":null,"label":"Cancel","name":null,"type":"button"},"durationMs":8,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:24:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.22,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8ed95704-519f-4994-bbe3-f171bf28ebab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:24:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":85,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:24:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.66,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"07b4f883-bc6d-4f57-91cf-25715dc3f44e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:24:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":91.91,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"PATCH","path":"/api/v1/school/terms/cmp8gtpmp00d88bcn46m6jdkv","requestId":"02a0f59d-ac44-4f5b-afa6-e22733438f13","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:24:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.19,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"eda5d3f3-8e46-43fa-bbb2-23391d245155","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:24:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":74.49,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"caaca583-0193-4857-aff5-bd55cdd8b229","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:24:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Update Term","name":null,"type":"submit"},"durationMs":10,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:24:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"PATCH","status":200,"url":"/school/terms/cmp8gtpmp00d88bcn46m6jdkv"},"durationMs":587.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-08-25 20:24:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":40.87,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ccaa23f6-41dc-418a-9e71-c1ca41d3251d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:24:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.22,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"aff0c736-b137-4993-b124-ec3a929205f9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:24:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":483.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-08-25 20:24:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":489.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-08-25 20:24:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":898.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-08-25 20:24:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.8,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"adbbf14e-de8f-499e-b725-e853351c7b90","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:24:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":89,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:24:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.1,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"518089ec-1b64-46c5-8aa2-b67c399a7bab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:24:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.36,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a10e9f0e-c4a0-461e-bfad-fd2da2cbee2a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:24:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":499.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-08-25 20:24:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.65,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2ab521ab-5754-4fdc-9800-1be0d77be4fb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:24:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.95,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"bf147c79-48c6-4d16-b36f-225f4584adde","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:24:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 20:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 20:25:00","totalConnections":1}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":490,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:25:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.26,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1955d4f9-f941-4562-82ac-694adb702da7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:25:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d1caa8a1-0196-44ec-abc3-069ba80ae393","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:25:02","userId":null}
{"durationMs":95.68,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"PATCH","path":"/api/v1/school/terms/cmp8gtpmv00da8bcnk5rsmytz","requestId":"824344f3-152d-4b53-be47-8ae57644044d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:25:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.07,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"cc59e179-b6a0-498a-b9d5-397d63a938e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:25:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"65fd3dba-85b0-4c4f-b4cd-65fa72dfb9e5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:25:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Update Term","name":null,"type":"submit"},"durationMs":9,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:25:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"PATCH","status":200,"url":"/school/terms/cmp8gtpmv00da8bcnk5rsmytz"},"durationMs":466.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-08-25 20:25:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.04,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0166c75c-5889-4165-b146-5604a3a69894","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:25:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":32.89,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"65f7d850-b761-49f4-a33d-12668d6c1811","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:25:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":481,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:25:24","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":499.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-08-25 20:25:24","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.56,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a39dadbd-c652-4a89-b0cd-14380d9f17d0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:25:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":1343.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-08-25 20:25:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.53,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5b026ffd-c450-4b8a-83db-a377522733f9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:25:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":76,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:25:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.3,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"66f6a840-ca41-4d42-8263-56630ca971ae","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:25:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":201.42,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"DELETE","path":"/api/v1/school/academic-years/a32bb545-7476-4712-a38e-0c82cd710105","requestId":"86744cdd-cae8-4d00-9cf3-a0d2d375a70f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:25:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.08,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"74596192-a2fe-4923-83d8-418b10dc227b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:25:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Delete Year","name":null,"type":"button"},"durationMs":7,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:25:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"DELETE","status":200,"url":"/school/academic-years/a32bb545-7476-4712-a38e-0c82cd710105"},"durationMs":600.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:25:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.95,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9afbee6e-0ce7-438a-8df9-979c9cdf2eec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:25:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.26,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"2ec4f707-f7bb-47ab-ae62-9c6f46e90410","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:25:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.41,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"506f5e60-9af2-452f-9ff1-7239fe8330e4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:25:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":499,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:25:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":895.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:25:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":1276.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:25:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.4,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"25b5a844-1cae-4e73-95c2-648d7f776c25","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:25:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":82.69,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2f4af883-1fd4-4bd0-b301-cd2f2353114b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:25:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":488.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:25:59","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.3,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2bea01fc-b493-4215-af8c-584199280dc5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:25:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:26:00"}
{"durationMs":59.85,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"9f8e337b-d9f1-49c0-99bf-4e136e703a72","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:26:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":446.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-08-25 20:26:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.55,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"73c48827-559d-4a0f-8343-bb7e409a664a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Edit","name":null,"type":null},"durationMs":76,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.84,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7943975b-d0c3-40cb-8280-35fb47bb7c33","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":94.2,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"PATCH","path":"/api/v1/school/academic-years/cmp8gtpm300d48bcnc9mas3i7","requestId":"2d9013aa-a7b0-4eaf-becb-03c048eb35ab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.66,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"d0bebfc9-1f01-4ecb-8d99-7d891c257566","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.1,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"a6ed32bf-665c-4c57-8f06-16e5010f0025","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Update Year","name":null,"type":"submit"},"durationMs":11,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"PATCH","status":200,"url":"/school/academic-years/cmp8gtpm300d48bcnc9mas3i7"},"durationMs":616.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.39,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"278cdb88-b1e6-4b40-a3b0-ee20d7adc50e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.29,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"d8cf4661-e8fb-42a4-af9f-59e46f1796d9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:26:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":426.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":573.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-08-25 20:26:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":918,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.53,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"27b0f6d0-ec55-40dd-bd3e-5cf6199ec8a3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Events & Activities Manager","name":null,"type":null},"durationMs":50,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.95,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ea51b7c7-16b4-4f64-b655-f1ae540ea278","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Public Holidays","name":null,"type":null},"durationMs":18,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.89,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"73d50c0e-03cb-4076-9470-c4c4bc56f5cc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Events & Activities Manager","name":null,"type":null},"durationMs":32,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.21,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"beee0e08-65f8-4404-b0f4-94d459bb387b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":85.6,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"94d6078e-651b-40a9-b2dd-75ced6151daf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:26:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":135.75,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"c8356f5e-6ee7-442d-bf9a-90a8953ef146","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:26:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":131.27,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"f0ebbfae-c4be-45c4-b470-bee7b79011e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":193.42,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"b3014886-12b9-4ec5-913b-1811e60601fe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:26:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1787678799748-699938","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academic/calendar","href":"/dashboard","navId":"1787678799748-699938","text":"Dashboard","to":"/dashboard"},"durationMs":89,"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-08-25 20:26:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academic/calendar","navId":"1787678799748-699938","to":"/dashboard"},"durationMs":173,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":676.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.23,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6c06355f-698b-47e0-b797-159c54f9df61","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":728,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1229.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-08-25 20:26:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1268.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.1,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"274af6de-bb23-44c1-bccd-a0be5b8cf138","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1787678806408-472012","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.09,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b2c1e98d-f655-4f8a-81f6-de58c4041df2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/guardians","navId":"1787678808770-99642","text":"Guardians"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academics","navId":"1787678810482-773072","text":"Grades & Streams"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/academics","navId":"1787678810482-773072","text":"Grades & Streams","to":"/dashboard/academics"},"durationMs":3005,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787678810482-773072","to":"/dashboard/academics"},"durationMs":3005,"event":"NAV_STALL","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787678810482-773072","to":"/dashboard/academics"},"durationMs":3042,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.1,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4e7ace02-a74d-4479-aee7-c676506c812f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":78.62,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"81044353-d7b7-4030-8324-1e4e4e8c123f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":523.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.65,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0314c9b4-4b3d-401a-bbf2-c0475eef81a3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":179.5,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"e70d0db2-ab25-422d-abc5-5de92f2c2962","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":141.39,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/teacher-assignments","requestId":"9def54eb-5e59-4559-964b-2ee8357c3f58","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":153.51,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"b1600816-3556-4eea-9ebe-c592198a2f5b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academics/subjects","navId":"1787678814940-710524","text":"Subjects"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:59","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics","href":"/dashboard/academics/subjects","navId":"1787678814940-710524","text":"Subjects","to":"/dashboard/academics/subjects"},"durationMs":599,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:59","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics","navId":"1787678814940-710524","to":"/dashboard/academics/subjects"},"durationMs":599,"event":"NAV_STALL","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:59","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics","navId":"1787678814940-710524","to":"/dashboard/academics/subjects"},"durationMs":643,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:26:59","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":69.46,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cf9f434a-d0fd-469d-88dd-ab2696976d18","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":366.31,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff/departments/list?type=academic","requestId":"36b8648a-4c9e-4bf9-a605-9aa69bfc1254","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:26:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":448.82,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1ae06610-5c45-4c30-8cbd-1c0c9622c013","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:26:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":804.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-08-25 20:27:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/teacher-assignments"},"durationMs":814,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":1297.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-08-25 20:27:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff/departments/list"},"durationMs":1386.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-08-25 20:27:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1385.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-08-25 20:27:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.69,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5dd4f13e-2ef4-4d8b-a860-20e98c773e49","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:27:00"}
{"durationMs":70.25,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"33bf1393-0612-4d49-a62e-3286a8115e86","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:27:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":542.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-08-25 20:27:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academic/calendar","navId":"1787678818922-446244","text":"Calendar & Sessions"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.93,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7d54b99f-7c65-41ee-8413-96579135e1ad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.07,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"9294cadc-df51-47a9-88eb-0bfe546b637e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:27:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/subjects","href":"/dashboard/academic/calendar","navId":"1787678818922-446244","text":"Calendar & Sessions","to":"/dashboard/academic/calendar"},"durationMs":61,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/subjects","navId":"1787678818922-446244","to":"/dashboard/academic/calendar"},"durationMs":84,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.29,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a6199c21-8b18-4d39-a71c-106eaddd5060","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":1126.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.11,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ed7d5f4d-b583-465e-9209-6279c7770daa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/attendance","navId":"1787678821466-852649","text":"Attendance"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academic/calendar","href":"/dashboard/attendance","navId":"1787678821466-852649","text":"Attendance","to":"/dashboard/attendance"},"durationMs":423,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academic/calendar","navId":"1787678821466-852649","to":"/dashboard/attendance"},"durationMs":447,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.22,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"438fc0a4-7d4c-4bba-98a1-e1557320fd25","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.73,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"d43a7325-0f25-4ca8-8e5b-7460c3bf4de1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":77.45,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"c328ce7e-fbee-47d6-9fa7-bee6aeef8fe6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1150.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-08-25 20:27:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":1172.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.34,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fc88a7b1-6759-460b-8362-c6dc98f63979","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":39.3,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms","requestId":"53026422-df3d-4598-8a0d-617189b2f0dc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":87.04,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"5f37e47c-2c5f-40c8-b690-2af7a730ef04","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":54.12,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"1fe3437d-a6c5-4606-b41f-09b22151c175","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":102.8,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/learning-areas","requestId":"e964571c-69e5-4808-8795-072b0cb84aa1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":140.04,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students","requestId":"475ed87d-4419-4dbc-825b-34f96f58b5b0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":332.71,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"34a3570c-c8ef-4084-9c16-8b01c9201c47","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":315.74,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/grades?termId=cmp8gtpme00d68bcnq5m8mk8x&limit=2000","requestId":"87466cca-0d6a-44d8-aa7c-2c913c4ee892","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":310.66,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?limit=5000","requestId":"c397b486-4529-46cf-8658-07a39fbeb08a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academics/cbc-grades","navId":"1787678823862-340528","text":"CBC Grades & Results"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/attendance","href":"/dashboard/academics/cbc-grades","navId":"1787678823862-340528","text":"CBC Grades & Results","to":"/dashboard/academics/cbc-grades"},"durationMs":938,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/attendance","navId":"1787678823862-340528","to":"/dashboard/academics/cbc-grades"},"durationMs":938,"event":"NAV_STALL","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/attendance","navId":"1787678823862-340528","to":"/dashboard/academics/cbc-grades"},"durationMs":973,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academic/terms"},"durationMs":521.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-08-25 20:27:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":583.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-08-25 20:27:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":584.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/learning-areas"},"durationMs":615.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-08-25 20:27:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.35,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1d578992-37d2-43b0-adaf-d1ebb1ae5c68","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":336.2,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x&isPublished=true&limit=100","requestId":"d5381c17-7a6d-4893-a6c3-8a8a01e4c4bd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":1082.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-streams"},"durationMs":1217.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-08-25 20:27:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/grades"},"durationMs":994.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":1611.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-08-25 20:27:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":1795.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-08-25 20:27:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.16,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"15c5d677-1814-4308-abc7-2f08f695bf99","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":4.43,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/api/v1/certificates/stats","requestId":"eb04e39b-fd68-4fec-aeb2-0861c5ec3d78","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-25 20:27:16","userId":null}
{"durationMs":1.56,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/api/v1/certificates","requestId":"c8b95327-1342-47f8-86da-ef210e5faa4d","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-25 20:27:16","userId":null}
{"data":{"href":"/dashboard/certificates","navId":"1787678832394-674174","text":"Certificates"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/cbc-grades","href":"/dashboard/certificates","navId":"1787678832394-674174","text":"Certificates","to":"/dashboard/certificates"},"durationMs":560,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/cbc-grades","navId":"1787678832394-674174","to":"/dashboard/certificates"},"durationMs":560,"event":"NAV_STALL","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/cbc-grades","navId":"1787678832394-674174","to":"/dashboard/certificates"},"durationMs":575,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.64,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"efca288d-d8f5-4207-8bf0-86438f584ac2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/api/v1/certificates/stats"},"durationMs":478.4,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:17","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/api/v1/certificates"},"durationMs":504.8,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:17","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.67,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ab5694ce-8e9f-4e40-af5e-386944ff66b8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Pending (0)","name":null,"type":null},"durationMs":14,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.74,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1742578b-f987-4dee-aad9-82fe22091be6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"All Certificates","name":null,"type":null},"durationMs":7,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Templates","name":null,"type":null},"durationMs":12,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Signatories","name":null,"type":null},"durationMs":12,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.26,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aa93ef7f-8fde-47c4-a10c-d70f7386f876","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Revoked (0)","name":null,"type":null},"durationMs":11,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.13,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"30b34f86-cd70-4b81-b5f5-e6dc1ff31f95","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":21,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.97,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4984dec5-4ff3-4b5c-bb5b-325296080bd8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":34,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.28,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6b136b51-2f69-465f-b54d-2cbac909d45e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":31,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":30,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.29,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1224f2bc-56e7-48a1-8e7c-65ff316e9b89","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":32,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:27:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.79,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"34c4da69-ce51-4f18-838f-37767ef857e2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:27:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:28:00"}
{"data":{"from":"/dashboard/certificates","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-08-25 20:28:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/dashboard/certificates","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-08-25 20:28:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.55,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"859ee7d0-ea9c-435a-9a22-ea333eef63b3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:28:21","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":24,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-25 20:28:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.34,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bd4d369f-b28a-4af2-8c75-d1b932fe3105","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:28:23","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:29:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":23,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-25 20:29:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.56,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7b551745-50e0-4ac3-99a6-e6940746dd65","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:33","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":6,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-25 20:29:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":26,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-25 20:29:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.16,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aea3bed6-2803-4c4a-94c4-63da01420cd0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:45","userId":null}
{"durationMs":793.92,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"7cc43efe-4a7b-4c11-ad9a-44004b674114","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:46","userId":null}
{"durationMs":325.72,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"a373dd90-f5c2-4969-ae4e-268f8b3b2430","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":415.13,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"a11d9338-738e-4780-a922-80eed156f2f5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":423.08,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"0607b8ec-c2e5-4fc8-9bda-980fd4697eb7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":103.46,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"20de3eef-3f5a-4cd2-be11-b6b1e10f4339","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:29:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":195.24,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"feb82f0c-64e7-461a-bce8-faf114276b8a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":209.59,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"a224e4f7-0e8f-4132-9f54-d86f3f558114","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":155.63,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"3d851bf4-5455-4f58-82da-01e1d572dd4a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:29:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":235.57,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"9952f1c7-36ad-468c-8406-6cd71dfaa57c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":124.45,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"84ee394a-2e5a-4ad3-8fae-a544b0e2dec4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:29:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1269.5,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:29:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"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-08-25 20:29:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"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-08-25 20:29:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.87,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"91b7ae4d-0a5e-443e-8ad6-9ed8170b3710","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":149.33,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"ce82c498-d3cd-45f2-a752-4bb77b1e6dfa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:29:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":132.39,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"81f3c86e-5c61-469e-8067-77e13af6d2be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":94.54,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"e3abf3bf-7ff0-4517-a098-822c2d3a578e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":129.59,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"b5fc175f-b71b-4782-8639-3793194df3de","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":117.4,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"bda15be6-fb6e-42a9-8c29-9dd134bde377","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":117.49,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"c03ab18d-4d86-4186-9bc0-99db807640d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":241.1,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"26a7b6e5-2103-48e1-82e0-9bc61d775eda","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:29:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":242.05,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"cf8f7d78-0014-4ff5-9cb8-9ae39476b184","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:29:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":250.81,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"47fddfa0-1d1f-41b4-9b79-40e5c023a303","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:29:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":1011.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-08-25 20:29:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":983.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-08-25 20:29:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1011.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-08-25 20:29:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1181.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:29:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1482.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:29:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1510.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-08-25 20:29:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1511.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-08-25 20:29:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1513.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:29:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1523.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-08-25 20:29:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":739.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:29:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":746.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-08-25 20:29:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1681.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:29:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.83,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e3556858-76e1-4860-91c9-44ea7ac021e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.2,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&includeStudents=true","requestId":"31a3c1e3-2f49-4b4f-bf89-2a6501c61906","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":2644.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-08-25 20:29:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/guardians","navId":"1787678987477-793829","text":"Guardians"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:29:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/guardians","navId":"1787678987477-793829","text":"Guardians","to":"/dashboard/guardians"},"durationMs":69,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:29:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787678987477-793829","to":"/dashboard/guardians"},"durationMs":103,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:29:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":3027.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-08-25 20:29:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":3028.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-08-25 20:29:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":4003.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-08-25 20:29:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":4003.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-08-25 20:29:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":4016.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:29:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/guardians"},"durationMs":525.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-08-25 20:29:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.44,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c7574af0-983c-4cc6-a37a-5812b0bded61","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable","navId":"1787678991536-952413","text":"Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:29:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.97,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"459bd4c6-b9b8-48d3-a101-c683d1ed9600","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":70.24,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"c4dedf80-30cf-47a9-aa5f-639c74b89a39","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.81,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/academic-years","requestId":"5d814c0f-8921-4a14-9a40-5e00542e9540","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":247.41,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff?role=TEACHER&limit=100","requestId":"8dad092c-2e85-44ab-9a59-e5afa85d92ec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":242.09,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/rooms","requestId":"cb84e022-0870-40b3-95b2-f1bba105cdc6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","href":"/dashboard/timetable","navId":"1787678991536-952413","text":"Timetable","to":"/dashboard/timetable"},"durationMs":1225,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:29:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","navId":"1787678991536-952413","to":"/dashboard/timetable"},"durationMs":1225,"event":"NAV_STALL","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:29:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","navId":"1787678991536-952413","to":"/dashboard/timetable"},"durationMs":1249,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 20:29:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":488.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-08-25 20:29:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/academic-years"},"durationMs":495.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-08-25 20:29:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.4,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2d69d307-2a92-4f87-aff3-68cb88ab43bb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff"},"durationMs":874.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-08-25 20:29:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/rooms"},"durationMs":908.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-08-25 20:29:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.28,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"59b71723-4c20-4948-be5d-007ca242ba7f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:29:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 20:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 20:30:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ab9f2b9-17f3-4e3c-8e85-bb1968c7e5ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:02","userId":null}
{"data":{"from":"/dashboard/timetable","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-08-25 20:30:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/dashboard/timetable","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-08-25 20:30:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.89,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f99aa408-b353-4377-9733-e12755434d24","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:15","userId":null}
{"durationMs":2.63,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eb16939a-ab6f-4215-a32b-7840a17883c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:22","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":9,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-25 20:30:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.86,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4a5f2173-bddc-4e88-8c15-e116f49a1b50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:40","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":16,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-25 20:30:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.45,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5cf143f3-9668-4df5-ba70-8b7044969972","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:41","userId":null}
{"durationMs":2048.92,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"ea5de0b0-8128-4f5f-870a-640851236c57","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:42","userId":null}
{"durationMs":46.87,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"a05084fa-217a-4163-a5ad-bda46421fe50","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:43","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":2466.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-08-25 20:30:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"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-08-25 20:30:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"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-08-25 20:30:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":12.24,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ca574500-5d3a-4429-92b4-eaa903f32832","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:43","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":119,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"6974e23d-5302-4413-a810-ec0ff3087d46","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":399.04,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b0ecb622-e227-456d-94a6-f56379154c62","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":381.96,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"17376feb-9c3c-44f6-8eed-e2cf1ee46759","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":307.64,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"4b1f7f2d-247a-45c7-88b9-82fe68d0f2a4","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":119.42,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"2a54fa4e-e241-4b02-85fb-65d1bef9ac8f","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":492.31,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"94f57e7e-de25-4a9b-8cce-0e6215ea1acc","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":121.76,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"fb783613-c326-4f93-a311-94000e4596cd","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":111.41,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"5a6eef91-1fc1-4deb-b8c9-ef3d477eaeca","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":340.75,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"dd59a1d4-89ef-4276-8b99-24a3710ee4a6","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":979.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-08-25 20:30:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":14.87,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2d5baa55-b302-4584-b783-fb15b5745761","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":240.92,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"06802187-4299-476d-a078-dfc7323392ad","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:45","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":251.06,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"b3c34a37-d016-48ad-b38d-1c6986befab4","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:45","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":249.14,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"fb771b8d-562b-470d-8eaf-f9abf502e8bf","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:45","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":260.67,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"74efdb22-3c31-4768-8094-6181e67aced7","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:45","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":271.04,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"13880b25-8556-451b-a79c-8f121377b925","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:45","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":1.59,"ip":"197.155.95.4","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"02c1a25d-2d12-4466-96f1-c9af98ed390a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:46","userId":null}
{"durationMs":33.28,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"6844b036-2727-4179-9bb8-da7180665755","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:46","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1372.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-08-25 20:30:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1388.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-08-25 20:30:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1389.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-08-25 20:30:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":1390.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-08-25 20:30:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":1391.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-08-25 20:30:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1505,"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-08-25 20:30:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1506.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-08-25 20:30:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1507,"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-08-25 20:30:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1537.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-08-25 20:30:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":641.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-08-25 20:30:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":654.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-08-25 20:30:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":663,"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-08-25 20:30:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":663.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-08-25 20:30:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":753.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-08-25 20:30:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":24.73,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8eb018a9-fce8-4b7f-9c40-110f9aac88f3","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:46","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":68.57,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"50ab62b0-baa8-4101-80f4-87a5eb77b033","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:46","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":67.26,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"343fe907-3f70-4978-a85d-c734f598d8ef","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:46","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1315.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-08-25 20:30:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1411.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-08-25 20:30:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1411.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-08-25 20:30:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":11.91,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9264da08-b327-44b2-948a-65e94459bb14","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:47","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"href":"/dashboard/settings","navId":"1787679048556-222947","text":"Settings"},"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-08-25 20:30:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard","href":"/dashboard/settings","navId":"1787679048556-222947","text":"Settings","to":"/dashboard/settings"},"durationMs":462,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/settings","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:30:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard","navId":"1787679048556-222947","to":"/dashboard/settings"},"durationMs":483,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/settings","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:30:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":15.79,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"06e92c89-029d-408b-9b30-b80ae9804821","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:52","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":37.15,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"c8b66735-dc02-4a5e-8802-67499fdf063e","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:55","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"href":"/dashboard/settings/school","navId":"1787679051432-602372","text":"School"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/settings","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:30:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/settings","href":"/dashboard/settings/school","navId":"1787679051432-602372","text":"School","to":"/dashboard/settings/school"},"durationMs":439,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/settings/school","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:30:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/settings","navId":"1787679051432-602372","to":"/dashboard/settings/school"},"durationMs":461,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/settings/school","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:30:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":16.5,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"61f133ad-f8c1-46f3-92ba-fc1766955b76","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:55","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":426.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-08-25 20:30:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":16.34,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b70be3f5-739d-4421-8074-6390803aea80","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:56","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"id":"radix-:r6:-trigger-branding","label":"Branding","name":null,"type":"button"},"durationMs":10,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/school","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:30:59","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":16.1,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"df022af1-fdd4-45e1-a8fb-70f9b58baaf9","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:30:59","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:31:00"}
{"durationMs":106.99,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"PATCH","path":"/api/v1/school","requestId":"95d73a1c-6233-4cbb-b599-f590542c7c5f","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:31:23","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"id":null,"label":"Save All Changes","name":null,"type":"submit"},"durationMs":7,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/school","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:31:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"PATCH","status":200,"url":"/school"},"durationMs":627.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-08-25 20:31:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":16.78,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c6790b53-7f68-4f0e-a742-24e58c8fbdf7","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:31:27","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":84.78,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"3a216df1-19e6-4e2e-8da0-48402c5abb08","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:31:47","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":57.52,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b7057f64-3dae-41c8-8642-72c8450c8dad","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:31:47","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"id":"radix-:r6:-trigger-basic","label":"Basic Info","name":null,"type":"button"},"durationMs":5,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/school","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:31:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":11.48,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"81953f44-8fd4-4343-836c-93680febdd0b","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:31:48","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":2498.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-08-25 20:31:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":2499.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-08-25 20:31:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"href":"/dashboard/health","navId":"1787679105154-928031","text":"Health"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/settings/school","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:31:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/settings/school","href":"/dashboard/health","navId":"1787679105154-928031","text":"Health","to":"/dashboard/health"},"durationMs":49,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/health","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:31:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/settings/school","navId":"1787679105154-928031","to":"/dashboard/health"},"durationMs":73,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/health","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:31:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":13.4,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"313c0b88-1ba2-4af0-ae6a-88b049916931","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:31:49","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":85.25,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/school/logo","requestId":"5212ffe6-6136-41db-a5c4-f087c886aabf","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:31:50","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":172.83,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/vitals?limit=50","requestId":"f11f9b8f-009e-4ea4-97a4-fad94cd62cba","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:31:50","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":246.05,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/records?limit=100","requestId":"91560bce-82d0-4e42-971c-bb68d64aa534","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:31:50","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":252.29,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/stats","requestId":"af112fc4-59c9-40b1-b43f-b08d4592ebfa","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:31:50","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":89.98,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/08/9c58f785-af02-45e3-b44c-8bf74427f98a.png","requestId":"c6e1f95e-9dc1-4de2-8e63-d9b2a74de551","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:31:50","userId":null}
{"data":{"from":"/dashboard/health","href":null,"navId":null,"text":null,"to":"/dashboard/nurse"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/nurse","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:31:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/health","navId":null,"to":"/dashboard/nurse"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/nurse","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:31:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"POST","status":200,"url":"/school/logo"},"durationMs":26812.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-08-25 20:31:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/health/vitals?limit=50"},"durationMs":604.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-08-25 20:31:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":17.11,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e7bc8c25-a743-4735-b6af-8ab415004673","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:31:51","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/health/records?limit=100"},"durationMs":1414,"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-08-25 20:31:53","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/health/stats"},"durationMs":1415.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-08-25 20:31:53","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":13.99,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a0a4af7c-4777-4d19-80cb-d600a2c81f11","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:31:53","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:32:00"}
{"data":{"href":"/dashboard/assessments/exams","navId":"1787679117442-372356","text":"Exams"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/nurse","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:32:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":13.22,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e8f5574a-b66c-4440-b351-d7c29904c6d0","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:01","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":38.19,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"04d854f3-461d-4d56-badf-a98305e08549","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:01","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":64.05,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10","requestId":"a9b07aa7-fe77-49ce-ad0a-2ff41cb043c5","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:01","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":60.58,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"4bbf8a08-6c44-421d-8729-05f6949e90ba","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:01","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":31.56,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"8632aa23-6332-4ec3-854c-755a718c81a4","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:01","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":54.63,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10&termId=8941151e-85e9-11f1-8826-0250f227b463","requestId":"6e210547-2336-4408-8e35-1c8f4ce51bbc","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:01","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/nurse","href":"/dashboard/assessments/exams","navId":"1787679117442-372356","text":"Exams","to":"/dashboard/assessments/exams"},"durationMs":873,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/assessments/exams","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:32:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/nurse","navId":"1787679117442-372356","to":"/dashboard/assessments/exams"},"durationMs":873,"event":"NAV_STALL","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/assessments/exams","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:32:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/nurse","navId":"1787679117442-372356","to":"/dashboard/assessments/exams"},"durationMs":914,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/assessments/exams","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:32:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":467.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-08-25 20:32:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":520.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-08-25 20:32:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":521.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-08-25 20:32:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":730.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-08-25 20:32:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":9.37,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9d648d36-02fb-4403-a45c-e128fe68acd7","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:02","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":431.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-08-25 20:32:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":10.52,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7c6472f2-6d3d-4083-9f32-a6440153423e","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:03","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":11,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:32:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":10.79,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0fe98107-e2d9-4f04-9dc6-98bd3257d6c7","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:05","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":1.48,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"48ebb713-51e9-476c-a5f2-4cb6877edbf1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:06","userId":null}
{"durationMs":18.02,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms/current","requestId":"a3d5d6a8-bfbe-4c5c-9a3f-7c5ef389609d","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:07","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":33.6,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview","requestId":"ce7f709d-dcb2-4b5b-8040-72a24152e00c","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":400,"timestamp":"2026-08-25 20:32:07","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":53.79,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Tuesday","requestId":"0a9b95c7-cd61-4e69-9ebb-acbb2f4fdbb2","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":400,"timestamp":"2026-08-25 20:32:07","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":38.29,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"ebdae6cf-4cd8-4345-a9d4-3aae5ce9b232","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:32:07","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":65.83,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"49e92a24-6095-4852-8214-c6e0e8cf4820","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":400,"timestamp":"2026-08-25 20:32:07","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":73.59,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0c7e72b8-88a2-4212-a320-a77af69e11ae","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:32:07","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"id":null,"label":"Teacher Portal","name":null,"type":null},"durationMs":39,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:32:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":15.84,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b074766f-3a10-4e34-a0d2-afbbb16eca14","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:07","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":65.49,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"fe495607-28d6-42d1-9262-3f944ecc03aa","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:32:07","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":122.89,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"4dfc484e-1974-4310-9913-bc28441bc4ba","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:32:07","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":100.61,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview?termId=8941151e-85e9-11f1-8826-0250f227b463","requestId":"0d86d6c2-bcb9-49ac-a5cd-7e1f846965f0","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":400,"timestamp":"2026-08-25 20:32:07","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":30.92,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"088fe8bd-5bf5-499e-9584-bd184e0c63d2","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":400,"timestamp":"2026-08-25 20:32:08","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":39.13,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Tuesday","requestId":"f8a2a5ea-6dfd-4bf1-8c57-7c0d54f6c730","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":400,"timestamp":"2026-08-25 20:32:08","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academic/terms/current"},"durationMs":426.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-08-25 20:32:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":400,"url":"/teacher/overview"},"durationMs":439.4,"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-08-25 20:32:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":559.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-08-25 20:32:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":582,"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-08-25 20:32:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"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-08-25 20:32:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":583.3,"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-08-25 20:32:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1043.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-08-25 20:32:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1115.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-08-25 20:32:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":400,"url":"/teacher/overview"},"durationMs":704.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-08-25 20:32:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":15.88,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"22681fab-70ed-47be-a492-bfe479805c68","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:08","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":23.03,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview?termId=8941151e-85e9-11f1-8826-0250f227b463","requestId":"be8726dc-a2b0-4fb3-b89c-e2f579743e26","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":400,"timestamp":"2026-08-25 20:32:09","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":595.3,"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-08-25 20:32:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":596.4,"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-08-25 20:32:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":11.7,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b5fb3526-aff0-4ff7-a216-aee50af0bba8","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:09","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":28.35,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"345fa3bc-d7eb-4ac1-844f-f3abc377d08c","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":400,"timestamp":"2026-08-25 20:32:10","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":47.99,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/status","requestId":"4b6d4145-57df-4e8f-9367-0ff60d1523f3","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:10","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":400,"url":"/teacher/overview"},"durationMs":910.8,"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-08-25 20:32:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":622.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-08-25 20:32:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/clocking/status"},"durationMs":623.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-08-25 20:32:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":15.3,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"97453388-a30b-4958-bf1e-f9c39733cc71","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:11","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":39.57,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"fddaf26c-2e81-4a7d-a613-c9cde8e03e6d","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":400,"timestamp":"2026-08-25 20:32:11","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":660.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-08-25 20:32:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":18.59,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ca06d4f4-5645-4e31-98c6-c3bc1bb4f03a","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:13","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/teacher","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-08-25 20:32:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/dashboard/teacher","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-08-25 20:32:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.22,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6e429db1-b066-4f38-8e9a-473b9002a9f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:32:21","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 20:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 20:35:00","totalConnections":1}
{"durationMs":1.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72888426-2b11-445b-85a3-c26e0c089278","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:01","userId":null}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":9,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:35:17","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":35.84,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b7832f73-6d2e-4bc8-be61-31e0ddbbbe5e","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:17","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":44.24,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"d6fe9282-dfbb-47f5-b205-9788ce2600bb","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:19","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":59.78,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"53710191-2315-49f4-81d4-debc2893b52d","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:19","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":79.08,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"43ce97bb-7a2c-4290-817b-f4711ecbfb5d","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:19","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":91.02,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"a1d8617f-e792-4ad1-a34c-fba5bfd8f9ff","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:19","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"href":"/dashboard/students","navId":"1787679313986-186862","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/assessments/exams","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:35:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/assessments/exams","href":"/dashboard/students","navId":"1787679313986-186862","text":"Students","to":"/dashboard/students"},"durationMs":2429,"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-08-25 20:35:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/assessments/exams","navId":"1787679313986-186862","to":"/dashboard/students"},"durationMs":2429,"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-08-25 20:35:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/assessments/exams","navId":"1787679313986-186862","to":"/dashboard/students"},"durationMs":2538,"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-08-25 20:35:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":16,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"abeccedf-de8a-41e4-844c-39ed17ab2047","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:19","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":424.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-08-25 20:35:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":425.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-08-25 20:35:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":518.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-08-25 20:35:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":519,"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-08-25 20:35:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":11.92,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7cca0ceb-f929-4884-bfd4-bc562b862d00","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:20","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":54.35,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/years","requestId":"c1ff4a41-723f-41e6-9485-65b6ba4cd3aa","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:21","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":54.73,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/promotions","requestId":"da09c279-44d8-4a3a-86bd-728ef6cf9c1b","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:21","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":69.09,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"60c8b608-95a6-49c2-8aa1-b33bfb6524c2","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:21","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":60.89,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/promotions/stats","requestId":"b43566a2-a83d-4f50-8e83-e5ea4307d2bb","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:21","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"id":null,"label":"Promote Students","name":null,"type":null},"durationMs":38,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:35:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academic/years"},"durationMs":424.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-08-25 20:35:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":454,"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-08-25 20:35:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/promotions"},"durationMs":463.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-08-25 20:35:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/promotions/stats"},"durationMs":464.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-08-25 20:35:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":9.36,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fdb1feef-1775-425c-ab43-734ea1b151b3","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:22","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":43.45,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"c2aed768-979e-471c-b27c-d01de224be12","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:25","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":79.39,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students","requestId":"f2dfafbc-d485-4314-a7dc-b6f153c4e04b","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:25","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"id":null,"label":"ID Cards","name":null,"type":null},"durationMs":9,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:35:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":17,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"142c9b78-f1d7-4a7d-afa2-35c2575aeb03","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:25","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":408.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-08-25 20:35:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":436.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-08-25 20:35:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":12.94,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4457ff3c-d3a0-4711-bb0a-7f6b0130bee5","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:26","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"id":null,"label":"Download PNG","name":null,"type":null},"durationMs":4,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:35:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":9.54,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9eb5a2f9-51be-4170-97fa-e9a72a4a0dec","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:32","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":126.33,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"824e92bc-8d7c-4c89-b122-eaca691890b3","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:35:48","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":120.36,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d518a77c-a90c-4e55-b681-a5060925a7a0","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":304,"timestamp":"2026-08-25 20:35:48","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":579.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-08-25 20:35:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":582.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-08-25 20:35:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":18.46,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e1b97f99-ac21-47bb-b02e-593de3d33d4d","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:35:54","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:36:00"}
{"data":{"id":null,"label":"KDken drewADM-2026-00010","name":null,"type":null},"durationMs":12,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:36:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":15.4,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"706e08eb-362b-423d-8cd7-a566835badb6","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:36:10","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"id":null,"label":"KJKhushi  joseADM-2026-00011","name":null,"type":null},"durationMs":5,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:36:12","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":13.46,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"96cc95b0-1a0d-41e7-a3de-fa3346882264","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:36:12","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"id":null,"label":"JMjoshua mkubiADM-2026-00006","name":null,"type":null},"durationMs":6,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-08-25 20:36:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":15.07,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"39edc295-c31e-476c-ae7c-be5b67182163","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:36:15","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:38:00"}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1c2c8870-9a4c-4a04-8d87-730c8add9a98","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:38:46","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 20:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 20:40:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3d74dc1-81ae-4a6f-99e3-72f0128fa80b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 20:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 20:45:00","totalConnections":1}
{"durationMs":1.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dc86227e-65b8-4712-a1ce-78238c56174c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:45:02","userId":null}
{"durationMs":3.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"402ac0ed-925f-4e21-8053-bf52901d4535","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:45:22","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 20:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 20:50:00","totalConnections":1}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f160fe7-968e-43d7-b018-2e102419be48","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 20:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 20:55:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"99ac8710-6762-490c-add3-5111143bb93d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 20:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 20:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 21:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 21:00:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"def91212-8813-4f8a-b8af-832d30edb2bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 21:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 21:05:00","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4577572d-fde0-4ebf-ad48-c0567b62c46b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 21:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 21:10:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0381426-5aaf-45d2-beba-129bbbd976c5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 21:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 21:15:00","totalConnections":1}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d588e046-e9de-42cb-a210-bc54652b8ee0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 21:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 21:20:00","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7d1641f-79c0-4ec4-b01b-0e8996444e97","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 21:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 21:25:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc662728-7e39-43b6-bdda-c399b3587b7c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 21:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 21:30:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92c41a1d-40bd-45b6-be2c-eddacf13f96c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 21:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 21:35:00","totalConnections":1}
{"durationMs":1.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b5107bc4-2721-4d27-9bb7-ab042476d95b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 21:40:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"061ed919-cf44-4539-bb09-867b7d48ae02","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:43:00"}
{"durationMs":2.2,"ip":"192.178.15.3","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5151cd0a-27ce-48a9-a356-7729e7c2e6fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:19","userId":null}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"192.178.15.2","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-25 21:43:19","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/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"192.178.15.2","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-25 21:43:19","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":2.45,"ip":"192.178.15.2","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"19be34c5-4544-448d-928a-ad4c40efef49","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:19","userId":null}
{"durationMs":2.01,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6c844759-ac3b-4faf-b47a-5df770b068cc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:23","userId":null}
{"durationMs":3.38,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"0238d076-425b-4da2-b593-e23b8641318c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 21:43:23","userId":null}
{"durationMs":1.62,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"b2c0d1ea-d700-46db-be50-804aa3e9657b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 21:43:23","userId":null}
{"durationMs":30.74,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"44d57782-e032-4b72-bb9b-800cb4cb3d63","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:24","userId":null}
{"durationMs":4.37,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"0ec5bf41-d07e-4c7c-b070-1fac7d2cc309","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 21:43:25","userId":null}
{"durationMs":2.11,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"edd08048-99a2-4b82-88c7-31adf09ca25c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 21:43:25","userId":null}
{"durationMs":1.9,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"98f73e59-5c65-48fb-8d6b-abe76dde922f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 21:43:25","userId":null}
{"durationMs":1.94,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f4e03890-aa72-46dc-bed2-6b414ad19cf5","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 21:43:25","userId":null}
{"durationMs":1.17,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e06dc0d0-1423-4868-9839-ee912d3b6f4e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-25 21:43:25","userId":null}
{"durationMs":77.15,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"7b98d40b-447a-4e2a-9084-8b34461b7c2d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 21:43:25","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/dashboard"},"durationMs":696.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-08-25 21:43:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/school-info"},"durationMs":704,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:43:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.78,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8598a33e-03b1-4450-af0e-a4ed847f17fe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:25","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":130.71,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"77e83f98-7c12-4670-8cee-6dd98a6d99cb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:25","userId":null}
{"durationMs":250.64,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"fbddfc6a-289d-4277-9fa4-e1f027885821","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:25","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":706.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-08-25 21:43:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":713.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-08-25 21:43:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":718.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-08-25 21:43:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":721.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-08-25 21:43:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":1016.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-08-25 21:43:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":953.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-08-25 21:43:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.79,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b844c633-95a4-486e-b7d3-c55107b6dfa4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:26","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":77.93,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e104d126-de8d-4a31-a8ee-2cfcb29f553e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 21:43:26","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":93.5,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"15d56153-8b29-4f10-9e0b-13a8d3fbbf8a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 21:43:26","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":76.35,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4ed6cea2-489a-4561-80b0-89102c2ca605","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 21:43:26","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":248.81,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"8aba3f76-abcf-40c2-bce5-f2c8d55ace64","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:26","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":15.17,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"b31433c5-cfde-452d-b7cb-4b60f974ddb8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 21:43:26","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":1509.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-08-25 21:43:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":467.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-08-25 21:43:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":470.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-08-25 21:43:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":473,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:43:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":8.9,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"13fb5d21-17f3-4985-be2c-0b6f04fcabae","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:27","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":41.27,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/payment-methods","requestId":"38ec2fb8-1810-4c16-b71f-322c094fdb78","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 21:43:27","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1005.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-08-25 21:43:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":1024.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-08-25 21:43:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/payment-methods"},"durationMs":415.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-08-25 21:43:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.84,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"05976c47-783b-47bd-acb5-7af477ead62b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:28","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":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-25 21:43:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","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-08-25 21:43:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.85,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"86552c60-01ac-4eb0-a45d-7fd78e9ee7f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:38","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"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-08-25 21:43:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.25,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"67542505-947a-4dee-bb05-2576a4807447","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:52","userId":null}
{"durationMs":805.89,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"e2775f69-5b13-4e7f-8f38-3a4f90b493b8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:57","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":33,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-25 21:43:57","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.5,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"eced37db-5695-4c26-92bb-5c0a8fa79783","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:57","userId":null}
{"durationMs":50.01,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"a99c8589-0d4d-494b-8cfc-076467888f0e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":141.21,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"37a77521-0423-4c69-8cf5-71160206a2ca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":141.69,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"0d41998a-2b26-4fd6-acf6-3a755a375092","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":123.52,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"57aa54dd-e7b8-4083-a0ab-9382b47c130d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":138.43,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"2938a1c5-301c-4ff5-b66a-454b0f675ae2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.55,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"13f4694c-1737-4b13-a634-f08f876a59c0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 21:43:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":64.25,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"637edaa1-ea84-4991-a319-c1a50979fed2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1307.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-08-25 21:43:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"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-08-25 21:43:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"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-08-25 21:43:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":396.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-08-25 21:43:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.36,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f0c8ba3a-d0a9-49eb-936d-f3d6c3bc33fd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":93.75,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e665d7db-f0e4-40e0-b44f-e4c88cb7f1d0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 21:43:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":103.25,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"5af4e827-0e55-43dc-89dd-1d4d2477d131","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 21:43:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":110.35,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"ac6ad461-9b73-4bd3-89ab-c3b549f031b1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 21:43:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":148.17,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"4b878ba6-9f46-4ed8-a217-cf8759919471","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 21:43:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":258.26,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"1d31a79d-eae6-424b-bde1-093f764f1988","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":238.2,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"cb8ece93-5ac7-45e0-970e-9ce472fb699e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":279.89,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"4f51be19-b03e-4ea4-8d75-a36b40bcc945","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":222.3,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"724d0b28-b6c9-4db1-9aa4-ecf6ba266aa2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 21:43:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":209,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"f3a4f4ae-6c35-4574-b6cf-601c6fccd800","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":276.73,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"69de37f9-d0c5-4ec3-bd8d-de9579595ed3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":280.96,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"f7631e5d-6510-4d06-8645-aacd6f5a9c77","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":499.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-08-25 21:43:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":511.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-08-25 21:43:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":895,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:43:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":896.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-08-25 21:43:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":898.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-08-25 21:43:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":764.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-08-25 21:43:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":937.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-08-25 21:43:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":953.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-08-25 21:43:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":986.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-08-25 21:43:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.65,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"872ff2a7-606b-456c-a3e2-6078391a7275","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:43:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:44:00"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":551.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-08-25 21:44:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":601.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-08-25 21:44:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":658.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-08-25 21:44:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":659.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-08-25 21:44:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":684.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-08-25 21:44:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":685.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-08-25 21:44:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":691.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-08-25 21:44:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":694,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:44:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.95,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"094c7dc6-2e7e-43d0-81a9-85f722d514c7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:44:00","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","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:44:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.39,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5aea2621-a468-4ef7-8848-11486e0119ac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:44:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":104,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:44:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.91,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"408be5bd-b85b-46e0-86e2-ead7c759477e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:44:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academic/calendar","navId":"1787683446696-157924","text":"Calendar & Sessions"},"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-08-25 21:44:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.71,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c61b73ae-462e-407f-b398-ec78a6a54c32","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:44:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.93,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/events?startDate=2026-07-24T21:00:00.000Z&endDate=2026-09-07T20:59:59.999Z","requestId":"9f24f108-8293-4731-9c23-f4c84d2900d7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:44:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":110.45,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/holidays?year=2026","requestId":"050986cf-e22d-4e8e-85a6-de36b6f8a377","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:44:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":100.27,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/summary","requestId":"2bc26def-52ef-4537-aa67-4195ac13b6f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:44:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.93,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"a13b5767-1af4-412a-bee9-cc4479d6e952","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:44:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/academic/calendar","navId":"1787683446696-157924","text":"Calendar & Sessions","to":"/dashboard/academic/calendar"},"durationMs":934,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:44:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787683446696-157924","to":"/dashboard/academic/calendar"},"durationMs":934,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:44:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1787683446696-157924","to":"/dashboard/academic/calendar"},"durationMs":965,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:44:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/events"},"durationMs":539.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-08-25 21:44:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/holidays"},"durationMs":574.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-08-25 21:44:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/summary"},"durationMs":635.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-08-25 21:44:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":764.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-08-25 21:44:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.28,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c6c6bb1c-52a4-4d3b-9e8d-865b52fabbf1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:44:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":70.95,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"07f69872-d40c-4613-8d22-b709fee9f058","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 21:44:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.69,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1115cabe-5220-488c-91bb-d38ae496a434","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-25 21:44:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 21:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 21:45:00","totalConnections":1}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":142,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":503.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-08-25 21:45:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":701.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-08-25 21:45:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.32,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a673f3b1-aef6-42b0-b72d-b433f414eed9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05fb6440-b527-4063-af2c-47bb02aae162","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:01","userId":null}
{"durationMs":159.61,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/billing","requestId":"92917198-54ce-4115-95f5-2ac0e9757b8e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/billing","navId":"1787683500898-205266","text":"Plan & Billing"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academic/calendar","href":"/dashboard/billing","navId":"1787683500898-205266","text":"Plan & Billing","to":"/dashboard/billing"},"durationMs":525,"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-08-25 21:45:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academic/calendar","navId":"1787683500898-205266","to":"/dashboard/billing"},"durationMs":525,"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-08-25 21:45:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academic/calendar","navId":"1787683500898-205266","to":"/dashboard/billing"},"durationMs":534,"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-08-25 21:45:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.7,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"32064763-e9fb-4020-a841-098f48767f66","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/billing"},"durationMs":572.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-08-25 21:45:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.95,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"840bcd1f-46d8-49fe-a704-d62eb53591bd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:07","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/billing","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.52,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8b2ed872-df59-454e-a55f-e515aab63675","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable","navId":"1787683514321-491185","text":"Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/billing","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.37,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7ca50344-972b-47e6-a38c-309d8009b3f8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":247.84,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"28140e45-ac11-4c87-b532-c41b5af17437","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":382.36,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff?role=TEACHER&limit=100","requestId":"d19b39a0-a896-413f-b9e9-7c36d4192a96","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.15,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/rooms","requestId":"e719178f-6489-42a9-810e-a4b29d7e0254","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":61.85,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/academic-years","requestId":"cef197dc-f73c-4e18-a716-50b1d02b47a3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":70,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/billing","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/billing","href":"/dashboard/timetable","navId":"1787683514321-491185","text":"Timetable","to":"/dashboard/timetable"},"durationMs":2125,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/billing","navId":"1787683514321-491185","to":"/dashboard/timetable"},"durationMs":2125,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/billing","navId":"1787683514321-491185","to":"/dashboard/timetable"},"durationMs":2194,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.15,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c86c0cd6-640e-492b-9f81-60fd81a53bf4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":964.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-08-25 21:45:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff"},"durationMs":1092.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-08-25 21:45:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/rooms"},"durationMs":1163.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-08-25 21:45:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/academic-years"},"durationMs":1393.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-08-25 21:45:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.45,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9c6c6b94-ecd6-450b-be95-6e3b5cde0c6b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable?tab=lesson_card","navId":"1787683518922-4777","text":"Lesson Card"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.9,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"25fa4ec9-efe7-47d6-8876-278378ed741a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable","navId":"1787683520933-549173","text":"View Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.69,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7ab52109-59bf-4ff0-9703-8004861722cf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"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/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.28,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0706e68e-8d66-4af6-b6e1-2ae143fd328f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/attendance","navId":"1787683526550-366500","text":"Attendance"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.84,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b883d20c-603a-4788-abf9-2ae43591bd6a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.72,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"7be7b87e-3316-41a7-b742-d03859b5454d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.94,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"e32d65f0-e203-4840-b33e-7113015b4a73","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":90.82,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/attendance/sessions?date=2026-08-25","requestId":"77e09a20-3e94-49a5-8023-e298eb45e626","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","href":"/dashboard/attendance","navId":"1787683526550-366500","text":"Attendance","to":"/dashboard/attendance"},"durationMs":1527,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","navId":"1787683526550-366500","to":"/dashboard/attendance"},"durationMs":1527,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","navId":"1787683526550-366500","to":"/dashboard/attendance"},"durationMs":1574,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"History","name":null,"type":null},"durationMs":53,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":389.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-08-25 21:45:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":720.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-08-25 21:45:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.55,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"57876eee-5e33-4331-b69b-56ef129f2dab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.74,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"9ba3348a-9daf-4be2-bad5-67ff443a4b4e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":35.63,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"3ac8e64d-0219-4f80-a259-411d8700306c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/attendance/sessions"},"durationMs":917,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Roll Call","name":null,"type":null},"durationMs":50,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-25 21:45:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":499.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-08-25 21:45:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.52,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"769acb69-46b8-4905-b68e-d460400ab83c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":808.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-08-25 21:45:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.21,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"31a35b00-c580-423c-9d0d-b537bd31f9b8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:45:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 21:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 21:50:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"775e3647-9650-42e9-a51a-46366aa2eaef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 21:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 21:55:00","totalConnections":1}
{"durationMs":1.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de5f9f9e-04bb-4ab2-a5c2-8e34715fbf7f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 21:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 21:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 22:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 22:00:00","totalConnections":1}
{"durationMs":1.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9f50a6b6-8feb-4f03-9ba4-eb268bd16769","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 22:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 22:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 22:05:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fa640861-d6fe-494a-880f-a9b8104398cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 22:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 22:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 22:10:00","totalConnections":1}
{"durationMs":1.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b4652b8e-6df8-429a-8d31-27c42d76968f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 22:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 22:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 22:15:00","totalConnections":1}
{"durationMs":1.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"68c49aaf-a934-47c2-88ad-240270952606","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 22:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 22:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 22:20:00","totalConnections":1}
{"durationMs":2.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"104db6bd-e8c4-4cb6-94e7-ddcfe1b750b8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 22:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 22:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 22:25:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f925539-9813-4a19-8266-e938e79cc536","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 22:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 22:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 22:30:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2dce2e0c-b188-42fb-97b2-9165d24a1426","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 22:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 22:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 22:35:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0010854c-e1c6-4879-b96d-36f98f374f76","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 22:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 22:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 22:40:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc880e0c-3352-403d-8e6f-b642513b3c43","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 22:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 22:45:00","totalConnections":1}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d2200967-334f-47d2-af25-1420012bafef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 22:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 22:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 22:50:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9900c426-2d2b-4914-a3b0-a3ebb353117b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 22:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 22:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 22:55:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0d20b069-b2bb-4209-adda-9947f5c704e4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 22:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 22:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 23:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 23:00:00","totalConnections":1}
{"durationMs":1.71,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"55cc9a0d-89d6-41d4-88df-00c223eb89f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 23:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 23:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 23:05:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25766687-da1f-4063-93b1-aa46bf110291","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 23:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 23:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 23:10:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"335950f8-78a1-4973-990d-8f6c5eeb7858","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 23:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 23:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 23:15:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7df87df-ab63-418c-a174-e2af4da3939b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 23:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 23:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 23:20:00","totalConnections":1}
{"durationMs":2.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e6806b38-d891-4e36-a29b-715ec8fdb9b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 23:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 23:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 23:25:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b15bf05-d562-4eed-bde3-b5e854ebfd8b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 23:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 23:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 23:30:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"43c87040-2a33-4db4-9451-6c93b6790f68","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 23:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 23:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 23:35:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"437840b6-f9ed-4b4c-9687-ddea867d2131","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 23:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 23:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 23:40:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ef7b3cd-6ca5-4e03-a296-55dc65b21d11","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 23:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 23:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 23:45:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d7a0eb8a-28ac-427f-94d3-a44a1a4d7380","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 23:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 23:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 23:50:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1899fd38-a501-4f42-8d6c-84218a406609","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 23:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:53:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-25 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-25 23:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-25 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-25 23:55:00","totalConnections":1}
{"durationMs":1.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"81457ba0-1fdc-4769-8f06-f9dda8b13df7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-25 23:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-25 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 00:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 00:00:00","totalConnections":1}
{"durationMs":1.71,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"026941c7-a824-458f-9019-cbcad657f596","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 00:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 00:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 00:05:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ff90f7eb-5a2b-4d60-994a-d441081638db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 00:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 00:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 00:10:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"694f4566-e5e6-492f-bffd-5a08d39a516c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 00:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 00:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 00:15:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e7318b30-3400-4e53-b13b-157dbde4e8e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 00:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 00:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 00:20:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"236d88bf-6014-4e1f-9553-f7efb2d20111","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 00:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 00:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 00:25:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ae87972-355a-4bbc-97fb-e17f9deaddeb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 00:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 00:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 00:30:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6c5f125c-788f-4637-9a11-31a081ae6162","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 00:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 00:35:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9636ed8b-dd2b-485c-8731-a8a186debd88","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 00:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 00:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 00:40:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ae81dc4-c7ce-470a-a3b5-f7ff659ac8e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 00:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 00:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 00:45:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c0e82710-5a79-4c32-8f97-dfd1df15b34f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 00:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 00:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 00:50:00","totalConnections":1}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d483dfa0-2f7c-459f-9905-edd5ba352cc3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 00:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 00:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 00:55:00","totalConnections":1}
{"durationMs":1.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ceb6db2b-3306-4c95-92cb-ad8143aa62d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 00:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 01:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 01:00:00","totalConnections":1}
{"durationMs":1.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a8f2b0b0-baf2-4574-85e8-aa29eb3bbc61","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 01:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 01:05:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6bfebd6c-9bd9-402d-a7df-798ecd2111b8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 01:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 01:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 01:10:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e7cb82ed-b44a-405c-82cb-1142c95c5c34","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 01:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 01:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 01:15:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a0aa7e9-f998-4e0c-b40a-99fc01a5100a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 01:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 01:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 01:20:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0584f892-c7d2-4fbc-bc49-66db713ce7f0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 01:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 01:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 01:25:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"488cd409-677f-4198-9bd9-ef63bcd8851a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 01:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 01:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 01:30:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a735cb41-8aea-4003-bbb6-c07527bdba50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 01:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 01:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 01:35:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"81103657-addc-41d5-9e42-0afa378d4363","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 01:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 01:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 01:40:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8299692c-5937-4678-8a25-724b956bc564","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 01:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 01:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 01:45:00","totalConnections":1}
{"durationMs":1.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1a38757b-e642-4720-8495-ac193d548d1e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 01:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 01:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 01:50:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e6eed597-d739-45e6-aeff-a6ab9576a5ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 01:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 01:55:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"36bd9247-1484-43fe-9645-4724a6a7c4e3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 01:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 02:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 02:00:00","totalConnections":1}
{"durationMs":1.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a959c632-f078-4791-aade-089b57d363b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 02:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 02:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 02:05:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2ae437b2-6331-4baa-870d-0caf88d30733","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 02:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 02:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 02:10:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa6027c3-82f8-4cfa-8263-ce09cb6bf0ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 02:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 02:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 02:15:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9c0bc02-cd9a-431b-ade4-19c84221a3f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 02:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 02:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 02:20:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"be6b779b-467a-42dc-9b2e-d7cee69ef0e9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 02:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 02:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 02:25:00","totalConnections":1}
{"durationMs":1.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a5f88ef8-f231-4707-8651-5ea46dd6306c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 02:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 02:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 02:30:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eab0bae3-9b58-435f-a49e-c795603e1c9b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 02:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 02:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 02:35:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1a01ef46-9ca9-4c03-a7dc-9c89eaea728d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 02:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 02:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 02:40:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"179db624-bd13-4ed5-91c6-5ca1e4373eb8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 02:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 02:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 02:45:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58086b21-c09a-47c8-a77f-0b0faa4c9a8f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 02:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 02:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 02:50:00","totalConnections":1}
{"durationMs":1.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2f7cb727-009c-4d4b-b0cd-d10126852d73","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 02:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 02:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 02:55:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cab880df-33ca-41fe-9918-31134b668cb5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 02:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 03:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 03:00:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d6924de-f0a0-4e02-9874-5abf6b55ad2b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 03:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 03:05:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0278b064-c076-44f7-9c2f-567f4e488166","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 03:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 03:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 03:10:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58896e99-6e59-48ae-8f2d-595365a68a50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 03:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 03:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 03:15:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"32bfad2f-5aad-43fe-a677-7ed7bf3a22e4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 03:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 03:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 03:20:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"86e8cb6a-fec5-46e5-8520-c451c58d1065","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 03:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 03:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 03:25:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6365b271-2275-473e-8e90-9f3f027141e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 03:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 03:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 03:30:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"040f8a6d-d4f6-400e-bf03-34fadcdd2c59","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 03:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 03:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 03:35:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a5ee47d8-e4de-4368-b440-07d0559411b6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 03:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 03:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 03:40:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ffc7f44e-416d-4fc6-ae6d-01e0f3a24401","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 03:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 03:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 03:45:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8fb04ecb-da8a-4586-b8e6-bd500bdb75c1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 03:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 03:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 03:50:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b3bfb4cb-a33e-439f-9bab-fb74a137da35","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 03:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 03:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 03:55:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"28400c03-c626-4a5f-a9c7-d147ee86bb2c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 03:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 04:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 04:00:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f733b62-9a29-436e-a71c-394d8840021d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 04:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 04:05:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ecad091-e45e-49f6-a323-71baf4498b81","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 04:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 04:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 04:10:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24dab8a9-6ecf-4f47-ae5d-9903f6102a98","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 04:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 04:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 04:15:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a6d7912-ba73-45fa-9be4-27715ba39990","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 04:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 04:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 04:20:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7d8fcea2-db84-4fc2-97dc-0bf6581392cb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 04:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 04:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 04:25:00","totalConnections":1}
{"durationMs":1.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17f18627-4831-4a7f-a34d-01eda2741b4f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 04:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 04:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 04:30:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d5740981-9eb6-4a2c-92e8-f2eca550d0a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 04:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 04:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 04:35:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9dfbabb-bf4b-489e-b234-69eef7f2d971","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 04:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 04:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 04:40:00","totalConnections":1}
{"durationMs":1.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e07fac9a-1b6c-4b48-a0d9-67cf9255de85","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 04:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 04:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 04:45:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"867fb91a-af12-44f3-ba48-92441bc9ce54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 04:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 04:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 04:50:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e86e75b2-a6b2-4c2a-9e04-83f5ab1dbc70","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 04:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 04:55:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5cbd8f78-62a1-4a13-b573-5bcff9d38fcf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 04:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 05:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 05:00:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"990dad5b-0386-42c9-96dd-9eb9f0b45e11","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 05:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 05:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 05:05:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f29b9470-0785-4b06-b814-3ba313a84141","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 05:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 05:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 05:10:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7dded553-967a-4dd3-abbd-92383c7c5036","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 05:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 05:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 05:15:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2635156e-0df3-47a0-b753-ef5416f704bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 05:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 05:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 05:20:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"afc72c93-9af1-4393-bf6d-1beff746c911","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 05:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 05:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 05:25:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"64559db2-e3ce-48cf-a9d4-6f3b9bffecc2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 05:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 05:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 05:30:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd489815-1199-4fe5-9383-d243e2475fdc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 05:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 05:35:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9666f7cc-4cfd-43e7-a93a-4b4d3557a701","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 05:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 05:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 05:40:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cf8d58b9-7997-4055-bccc-95592c67503d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 05:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 05:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 05:45:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5cab5da9-217f-4927-876d-7e9af9b222fa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 05:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 05:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 05:50:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0599924a-6c4b-4019-9737-48f236f7adfc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 05:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 05:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:55:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 05:55:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 05:55:01","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"511c9a5f-50cd-414b-b730-e842faecac90","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 05:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 06:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 06:00:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8fb953f7-8e60-4b76-b113-4a966639075d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 06:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 06:05:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe16d70b-ebde-49c4-87bb-5807489c34ab","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 06:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 06:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 06:10:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"97bd54d9-7916-4ff2-8d5c-73182b3ffc7b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 06:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 06:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 06:15:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1ac02934-408a-4176-85db-861ce3f5fe31","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 06:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 06:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 06:20:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fd493282-6ef5-4b96-9ac6-7eaf5e752a92","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 06:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 06:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 06:25:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e4f1e3d1-66f7-47bd-b195-f0b6d984aaa0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 06:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 06:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 06:30:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a4a0b251-09f7-4a54-81ad-c2337e668128","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 06:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 06:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 06:35:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a80644e-0006-4e8d-9f96-fed0da23bda3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 06:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 06:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 06:40:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8fe9bdcf-ac1e-4325-8091-40db2522cee8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 06:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 06:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 06:45:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7d0d6e40-fca5-4559-ae3e-e81c365a23fc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 06:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 06:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 06:50:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2c6083be-783d-4758-b85f-cf1dfaed0419","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 06:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 06:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 06:55:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c4dd4b0e-ad4d-46ee-b801-41f5a5839f60","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 06:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 07:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 07:00:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b76b15d-ff5d-4191-93ca-3e19c85db3e9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 07:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 07:05:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a14cbbfe-0319-4428-aaa8-b3dff93a1cba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 07:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 07:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 07:10:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1d791fcd-070f-436b-a40a-f694dfb771d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 07:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 07:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 07:15:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25f6dd38-2761-4a4f-8f82-43d68bab4972","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 07:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 07:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 07:20:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"20c9f3ca-f4c1-4e1a-9283-1539cc7276fd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 07:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 07:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 07:25:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"80ed85f3-1552-42ba-991d-ffd9f8e0e613","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 07:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:26:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 07:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 07:30:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d19fd687-557e-422a-bd4c-9c4e4611bb10","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 07:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:34:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 07:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 07:35:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a4eb576-efb5-4077-b1ed-f0315e3a01a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 07:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 07:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 07:40:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bda00f71-93fd-4d9e-8cca-8f3e11cc81b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:44:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 07:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 07:45:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d85bf932-a227-4bd1-a367-e8605557e2ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 07:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 07:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 07:50:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9f699ba6-f59f-4263-b60b-3449aeaa85f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 07:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 07:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 07:55:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e32ec47a-24a6-4542-9cfa-75e139c8cb34","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 07:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 07:59:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-08-26T05:00:00.902Z","service":"cbc-sms","timestamp":"2026-08-26 08:00:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-08-26 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-08-26 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 08:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 08:00:00","totalConnections":1}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-08-26 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-08-26 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-08-26 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-08-26 08:00:00"}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"21830ced-d8c1-42b5-b9aa-b9a025c692c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:02:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 08:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 08:05:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2bdab89b-3880-4eb9-a122-712cb25238e3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 08:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 08:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 08:10:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"117ce2e9-28cf-41bc-88c6-ddc62d1e09c5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 08:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 08:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 08:15:00","totalConnections":1}
{"durationMs":1.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c06db302-4e96-4e85-9a2f-cd389df7d27d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 08:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 08:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 08:20:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f591b9b8-3319-4329-ba0f-195a9727ec91","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 08:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 08:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 08:25:00","totalConnections":1}
{"durationMs":2.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4dc792a5-658c-46af-a01b-3b4bf32f0443","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 08:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 08:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 08:30:00","totalConnections":1}
{"durationMs":2.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4abc7686-b78a-43f1-8d3c-f764eb1d6f62","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:34:00"}
{"durationMs":1.13,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e6d2b3cc-d25c-4b2f-8771-1fc4bdc8efed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 08:34:01","userId":null}
{"data":{"from":"/dashboard/academic/calendar","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-08-26 08:34:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/dashboard/academic/calendar","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-08-26 08:34:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.74,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dbe32078-a1eb-423b-bf01-ed7870ae4d74","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 08:34:03","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 08:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 08:35:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7eddceb-fa45-4107-94b7-8ea3912c6242","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 08:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:37:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 08:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 08:40:00","totalConnections":1}
{"durationMs":2.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"73698cee-499b-4102-821a-3cd633753111","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 08:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 08:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 08:45:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70302bde-b939-49e2-adfa-0c6c7c7331e9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 08:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 08:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 08:50:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1049ee4a-6781-48fd-8a24-ae6648caa6f8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 08:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 08:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 08:55:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25eec910-bbcf-4192-ab00-ace1c19139c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 08:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 09:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 09:00:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25b34fba-f299-4613-8a0b-aa77b5876613","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 09:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 09:05:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"018ed0aa-0b8d-4651-8e90-fcbcf269bee6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 09:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 09:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 09:10:00","totalConnections":1}
{"durationMs":2.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cee8ff44-e8a4-44f7-86f3-616cbd9acc75","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 09:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 09:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 09:15:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7be89e49-9db9-4cba-af18-fb445e66c5d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 09:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 09:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 09:20:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"792286e6-0498-4f2e-8e38-5bf76adb1fa8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 09:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 09:25:00","totalConnections":1}
{"durationMs":1.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"052b4048-c3c4-4b7f-92ef-a36a76b07e00","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 09:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:28:00"}
{"level":"info","message":"[CRON] Attendance alert started","service":"cbc-sms","timestamp":"2026-08-26 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-08-26 09:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 09:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 09:30:00","totalConnections":1}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"113504d4-46fc-44f0-8d2e-51af0d182327","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 09:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 09:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 09:35:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f53e6949-db53-497a-91ce-4b3f9a578ff4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 09:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 09:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 09:40:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c31a4e26-41cb-42b3-9fe8-b8dd818bfbed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 09:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 09:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 09:45:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"94defe4c-9840-4008-9ef2-0d937207ba22","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 09:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 09:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 09:50:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"391d311a-7b49-4be2-86bd-e52c6599053a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 09:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 09:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 09:55:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"78861cbf-901e-4517-9862-72587f27caab","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 09:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 10:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 10:00:00","totalConnections":1}
{"durationMs":1.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ccbca4c2-11df-4782-9321-ccd193620ab6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 10:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:05:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 10:05:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 10:05:01","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"55b2322a-a242-4cf9-8cc4-3fc49f9bfce5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 10:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 10:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 10:10:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"329d5a5b-e31f-4425-bafc-1171999fc86c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 10:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 10:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 10:15:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c1d01b88-4c92-4853-b525-bd9359e74224","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 10:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 10:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 10:20:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4cebad3-e30e-4a2b-954b-21206a85312f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 10:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 10:25:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"181c8aee-af94-4a23-a8ee-addfdb256969","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 10:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 10:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 10:30:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e24f60e9-5c9e-47a4-81d6-f95cdd4e2d42","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 10:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 10:35:00","totalConnections":1}
{"durationMs":1.61,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4db2f672-728b-40d9-97a0-dec02bb3ba6f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 10:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 10:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 10:40:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ca9b3a6-b1a0-48bf-a3c5-288e226ea859","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 10:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 10:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 10:45:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2caf5279-ab70-4121-ab99-bb1a5a8626c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 10:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 10:50:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1c696959-13be-42d3-b4eb-3830e24a6b16","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 10:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 10:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 10:55:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7c79f7ab-2634-4d6c-aa66-10510266a2ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 10:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 10:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 11:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 11:00:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b7ae69a-6394-4079-a835-757fb0390f9e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 11:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 11:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 11:05:00","totalConnections":1}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e5e01b68-6011-4b8c-9ec5-e042bbac466b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 11:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 11:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 11:10:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98d83e0a-585a-4d66-b5e6-ef84ffc3ddab","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 11:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 11:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 11:15:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d398dd55-7d3a-4b5b-9841-4c12d47d1364","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 11:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 11:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 11:20:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"191fb509-5075-445e-8251-b04f626bb336","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 11:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 11:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 11:25:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"187a4c82-8d27-4edf-91b4-0af2b5dda3bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 11:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 11:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 11:30:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"749b939c-3d07-46b2-97cc-ff961457acac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 11:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 11:35:00","totalConnections":1}
{"durationMs":1.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4dda2d6f-518c-4cf9-9388-454755bab55e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 11:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 11:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 11:40:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 11:40:01","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e7402e91-bde3-4e0e-bebf-407d2f08d8d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 11:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 11:45:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"06d2b234-2c97-4095-b133-61b8acf1ff1e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 11:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 11:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 11:50:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5dbfc84a-c0c3-4a3c-bb4d-c1efe2bc11be","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 11:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 11:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 11:55:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"210e530e-a77f-41ed-bb65-cd849751a73f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 11:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 12:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 12:00:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"673aa406-7d79-4847-ba2c-6e1f801361a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 12:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 12:05:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"388c8b98-6c2f-41b6-8a97-264e220e0103","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 12:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 12:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 12:10:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87f544c5-20d4-4e11-8f88-43c875c1dc5d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 12:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 12:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 12:15:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"65e8ada2-37d7-4b0f-9f74-9d3fcdeda583","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 12:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 12:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 12:20:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c8c3fbcc-7fd8-4d62-bef2-3ba976b057d9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 12:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 12:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 12:25:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cf5f76ae-c502-4d0d-baae-3fb80c7587cf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 12:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 12:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 12:30:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"91485534-4e7f-4cb1-bae5-626795f1f602","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 12:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 12:35:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a71fc545-aad0-463e-ae85-7ed33717e68e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 12:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:39:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 12:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 12:40:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5a73f80-0c30-4d19-af6e-7abb5831f525","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 12:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 12:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 12:45:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a75b13a1-ea90-42bf-a0cb-3dab50fa795c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 12:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 12:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 12:50:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e37d4b7e-aaa7-44c5-9d79-5b1b60fc3766","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 12:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 12:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 12:55:00","totalConnections":1}
{"durationMs":1.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ee4d3446-3232-408d-a32d-27d44d42b822","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 12:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 13:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 13:00:00","totalConnections":1}
{"durationMs":1.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb03dacb-fce7-4147-b2ef-2ad19baf140c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 13:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 13:05:00","totalConnections":1}
{"durationMs":1.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ca30cbf6-5097-4054-9897-fcd227ceca8d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 13:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 13:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 13:10:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb9d447d-0492-48f3-b5ba-c84851b2652c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 13:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 13:15:00","totalConnections":1}
{"durationMs":2.68,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"47b6f74c-c617-4161-bd9c-85cc0c4e90d0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 13:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 13:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 13:20:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"acc9639f-6e51-4931-ab77-21f98fc3d0b6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 13:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 13:25:00","totalConnections":1}
{"durationMs":1.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"34842d33-e658-4556-ba9b-dfddbf794011","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 13:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 13:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 13:30:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3143d299-b2e8-4446-b2cf-b3633442cc0d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 13:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 13:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 13:35:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bc4a086f-123b-47b2-98ea-a676f395f643","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 13:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:37:00"}
{"level":"error","message":"[ScheduledMessages] Error in cron job: Too many connections","name":"SequelizeConnectionError","original":{"code":"ER_CON_COUNT_ERROR","errno":1040,"sqlMessage":"Too many connections","sqlState":""},"parent":{"code":"ER_CON_COUNT_ERROR","errno":1040,"sqlMessage":"Too many connections","sqlState":""},"service":"cbc-sms","stack":"SequelizeConnectionError: Too many connections\n    at ConnectionManager.connect (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:102:17)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async ConnectionManager._connect (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:222:24)","timestamp":"2026-08-26 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 13:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 13:40:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ee2a7d38-a09c-4145-a5cc-5d426bda4278","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 13:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 13:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 13:45:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1968c9cf-f11c-41e3-bbb6-a865e1abbce3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 13:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 13:50:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"520c1f38-01f3-4441-8f20-191a92d827bc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 13:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 13:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:55:00"}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3f2b0742-ba82-4963-a3cb-d072c41951ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 13:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 13:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 14:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 14:00:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d01ec8d3-0809-48ed-adea-d38a24e33fdd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 14:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 14:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 14:05:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bafb2c51-8069-431a-a645-f71bb82833e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 14:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 14:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 14:10:00","totalConnections":1}
{"durationMs":1.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"315af2c5-75b5-4ff0-af27-55f744cee4ef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 14:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 14:15:00","totalConnections":1}
{"durationMs":2.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"656ced37-a2fd-446f-a641-004230fa3893","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 14:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 14:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 14:20:00","totalConnections":1}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe54f456-bf82-49bb-82f7-112a7ea17d78","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 14:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 14:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 14:25:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bad51388-e293-45bc-9021-cc08f16d3bec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 14:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 14:30:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a3e1f3b-79a8-4f8a-a728-57847cda94eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 14:35:00","totalConnections":1}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25738fc1-13d2-40dc-869b-3a1a200c9bc4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 14:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 14:40:00","totalConnections":1}
{"durationMs":1.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"43677f6c-525e-4a94-ae24-dfaee4bceefa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 14:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 14:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 14:45:00","totalConnections":1}
{"durationMs":1.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dd3547dc-7854-44a2-b028-69d5d04ee1eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 14:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 14:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 14:50:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d5f6096-38b9-4b31-98ed-8a768719dc57","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 14:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 14:55:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b3ed360c-a135-4e47-81f1-157828b53595","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 14:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 14:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 15:00:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"10cfe0cd-85e1-4ba6-985f-66ae1ea3789a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 15:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:05:00"}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ca46f86-b79f-4b81-ab69-9d8313846365","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 15:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 15:10:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9fdb8c37-0d37-4a94-9e87-923823320526","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 15:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 15:15:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77f36863-5c04-4992-b8e9-157151757330","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 15:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 15:20:00","totalConnections":1}
{"durationMs":2.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"921e71e1-a947-43f7-996e-6d751478e814","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 15:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 15:25:00","totalConnections":1}
{"durationMs":1.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ca32869d-b0e6-485e-ab0c-a085a5e21789","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 15:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 15:30:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7e4b225f-dfd8-4c74-b0b1-2ce99c2be03b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 15:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 15:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 15:35:00","totalConnections":1}
{"durationMs":2.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9e080aae-3d18-4bfc-abfb-cee579e74dcd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 15:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 15:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 15:40:00","totalConnections":1}
{"durationMs":1.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f2b7d2e9-4225-41a1-ad52-6ae6e0f5c692","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 15:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 15:45:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c71f22eb-0f0f-47ba-b641-606c3ea21e68","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 15:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 15:50:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d45a9870-6a1f-43d0-a50c-c9fc977ff3c2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 15:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 15:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:55:00"}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2e63fc91-7b9c-456c-976f-1ece37139103","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 15:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 15:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 16:00:00","totalConnections":1}
{"durationMs":1.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e6374992-d6e0-4212-a538-bc6b88048d9c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 16:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 16:05:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"63c155c3-33c9-4b44-b989-42187ea25875","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 16:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 16:10:00","totalConnections":1}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"62ef2f2e-5800-4fcb-9cd4-9bdd421f3444","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 16:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 16:15:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"43b36bd1-65bc-4fda-972a-df1abb476cc1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 16:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 16:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:20:00"}
{"durationMs":1.67,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3e7c8814-3648-4f7e-bbb0-49d2ad9d37ea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 16:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 16:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 16:25:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5df89f3-076e-49da-947b-309bb1f513c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 16:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 16:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 16:30:00","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b954602-f8fe-4d0e-a514-a66554bb56c2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 16:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 16:35:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1057d6f6-1c40-49a7-8aac-00621f561298","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 16:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 16:40:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"74082091-d4c5-42d7-a9d1-5cf6828d37d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 16:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 16:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 16:45:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b137a28e-5702-4826-bafa-e4e0c35509c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 16:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 16:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 16:50:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd704cd8-c47d-4c1c-846c-6615a74bbff2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 16:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 16:55:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2cc9e566-e97c-440f-8875-3cba3a07f519","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 16:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 16:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 17:00:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7feba8b-167f-41af-8a74-063132d00150","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 17:05:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"99999bd6-42f6-4237-b50b-04381d7903e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 17:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 17:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:10:00"}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d224719-b972-4cbc-887a-338a782aceb1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 17:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 17:15:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4a692c59-7383-4246-a00e-17157b758dc3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 17:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 17:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 17:20:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"365b6252-5db9-4a15-b08e-5d224c77edbb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 17:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 17:25:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"db6862e8-efac-46c7-ad98-8367352f7a48","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 17:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 17:30:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"13b3b1fd-b25e-4fb1-a174-c1a15efd3e9a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 17:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 17:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:35:00"}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d23c1683-5c51-4764-8f2f-883d4fb41684","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 17:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 17:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 17:40:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a8254671-73db-4090-985d-48538a92a4a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 17:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 17:45:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"781ac3c8-70e1-494f-b8ee-a3fc8992a677","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 17:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 17:50:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"99d2d781-84e4-4a2f-b810-790e8d1efc9a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 17:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 17:55:00","totalConnections":1}
{"durationMs":1.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"48998294-93e0-48a7-8875-959b38ec2931","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 17:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 17:59:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 18:00:00","totalConnections":1}
{"durationMs":1.71,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"15a1b150-8cd0-47fb-a0cb-d2adfdc96ed4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 18:05:00","totalConnections":1}
{"durationMs":2.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e0ee233f-06ae-43b8-812a-11339b47e13c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 18:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 18:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 18:10:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9225702a-4e76-47f0-84a7-d75a6fa25832","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 18:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 18:15:00","totalConnections":1}
{"durationMs":1.68,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bf082727-ba43-483d-ba71-d7e33e1a2810","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 18:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 18:20:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bdb7c8a8-8ab2-4845-a045-f9e0f293dece","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 18:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:23:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 18:25:00","totalConnections":1}
{"durationMs":1.62,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e556e1e9-65c1-475d-b2df-a34ff897c8fc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 18:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 18:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 18:30:00","totalConnections":1}
{"durationMs":1.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3425a87a-21d2-4590-a3f9-1cda53b3f1b0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 18:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 18:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 18:35:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2f8321dd-38c0-435b-bce8-35cb0a3c907d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 18:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 18:40:00","totalConnections":1}
{"durationMs":1.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"762f3512-e4f1-40c9-bccb-76ac86e4aa9e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 18:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 18:45:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5c08f21-e2aa-40d4-9ef6-d9df7d44157d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 18:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 18:50:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"949f9c05-df01-4143-b558-e22824985730","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 18:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 18:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 18:55:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e132035b-c93b-4926-b4f5-a28607f9c1ea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 18:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 19:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 19:00:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9bd4fe7c-cd11-4a2d-b8f3-d3eb41cd0300","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 19:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 19:05:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ec3f5307-82be-4be5-a67a-26f3a6168f11","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 19:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 19:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 19:10:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"66ad0383-b8d6-4116-9890-209bf2ad1730","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 19:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 19:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 19:15:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00d3a70b-9e34-4081-8aa6-839e009b4ed7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 19:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 19:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 19:20:00","totalConnections":1}
{"durationMs":1.69,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3c2595a-20a3-4ae2-96ff-56df746c8274","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 19:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 19:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 19:25:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ec47df0a-2865-4b0f-a5d2-27a416644495","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 19:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 19:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 19:30:00","totalConnections":1}
{"durationMs":3.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4e76cf85-3bf4-4785-900c-01b665a44681","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 19:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:33:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 19:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 19:35:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9392222-e3b9-451f-aafa-a5a906e5d725","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 19:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 19:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 19:40:00","totalConnections":1}
{"durationMs":1.67,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f430a09a-6217-4f76-84b2-e054f82319ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 19:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 19:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 19:45:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a666ba7b-ab18-4e18-b261-dcdc2fb41b26","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 19:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 19:50:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"168c84a1-75bf-4ffb-b158-da712749dfbf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 19:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 19:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:55:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b8811e63-129d-459c-9bbc-3880dae42bfe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 19:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:56:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 19:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 20:00:00","totalConnections":1}
{"durationMs":1.71,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f0b90b1-9d44-4563-a70a-5504adcab1e4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 20:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 20:05:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7e35aa3-75f6-4418-be43-7d6c238cb748","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 20:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 20:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 20:10:00","totalConnections":1}
{"durationMs":1.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b8ca7407-aab2-48b8-8246-552f2a3c399b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 20:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 20:15:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"debd72dc-6d30-4099-b1cd-c41325d25294","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 20:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 20:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:20:00"}
{"durationMs":1.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ab9596a3-9994-4263-bb70-9acb9927c989","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 20:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:21:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 20:25:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"42441dff-f6ec-454a-b5c3-3625cd2bc705","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 20:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 20:30:00","totalConnections":1}
{"durationMs":1.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ccfae63-235f-483c-acf1-75e70dc29a52","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 20:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 20:35:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5cb44b47-f6a3-42c9-92b2-b59170b6eae0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 20:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 20:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 20:40:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da8e91bf-b21d-46bc-86cb-11f8abae191d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 20:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 20:45:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"350739de-8d2b-4aed-b4e8-0f32b223d55a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 20:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 20:50:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb07b9f5-f274-4c73-99b6-b2b92f783fd3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 20:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 20:55:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"39726ce5-2470-49e2-9a47-042c76a44cbe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 20:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 20:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 21:00:00","totalConnections":1}
{"durationMs":1.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6b1aeca-8536-4054-b1ef-486730aabee2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 21:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 21:05:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"83d7a9ee-e90c-4078-a63b-9c393eb12fd6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 21:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 21:10:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1d865941-663f-40b7-9ec3-35ba2ccec72f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 21:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:13:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 21:15:00","totalConnections":1}
{"durationMs":1.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"829d027b-ec21-44dc-8d5d-caf4c5774354","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 21:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 21:20:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e9d49cd5-ef8e-4453-910a-23c3802efd4b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 21:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 21:25:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3fb4fd37-5326-4d67-9fb8-98045636bef7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 21:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 21:30:00","totalConnections":1}
{"durationMs":1.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"beeb2b35-d347-4c4f-9112-7fe7b5271e47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 21:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 21:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 21:35:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"deb7fbc1-bcd7-4075-9b19-216993418980","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 21:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 21:40:00","totalConnections":1}
{"durationMs":1.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c24db9fb-846e-4057-b076-699f3d7630f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 21:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 21:45:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6e64550-cc02-4125-87e1-2eb9d7dda50c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 21:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 21:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 21:50:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f9b1a372-b3bb-4810-91d6-192b8ee7ee28","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 21:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 21:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 21:55:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"03926114-fa81-4414-8260-918aa5f26753","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 21:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 21:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 22:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 22:00:00","totalConnections":1}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7d2ce95a-7055-4966-8eb0-35168e46871e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 22:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 22:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 22:05:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5dd8153c-2e6b-4cfe-bd5d-60669e128536","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 22:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 22:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 22:10:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a8ecc2b9-f025-4698-a74c-f979a905c9ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 22:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 22:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 22:15:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7288e0f-5184-4a3e-b203-6a98c7c06e4e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 22:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 22:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 22:20:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4fdddd54-2e96-41a1-adb8-505c0a59c903","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 22:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 22:25:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a2884e97-8709-491f-bee6-a341e67c0f83","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 22:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 22:30:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e74da632-c44c-4412-9987-cbf83e624319","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 22:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 22:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 22:35:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"86608072-9b54-4ccf-9c47-45b9d9e6a8e6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 22:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 22:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 22:40:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c4ba3b79-682b-41dd-adbb-68d3cf15d6fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 22:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 22:45:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51d7a1ec-985e-4d3b-82d6-93787e50784f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 22:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 22:50:00","totalConnections":1}
{"durationMs":1.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ae0011a-92e1-40d4-a888-a5e079990024","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 22:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 22:55:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c3bd4494-b466-411a-bfec-8ab6590d5be0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 22:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 22:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 23:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 23:00:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"693377b1-ba99-4b1c-8fa2-528cf698ea19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 23:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 23:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 23:05:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a06febf9-c2d2-4c07-8b72-899d586d29dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 23:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 23:10:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"34c9448c-ca08-48ed-bf55-d235e40f1b51","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 23:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 23:15:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"88309ece-a17e-4fe8-8619-74aff1921b4b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 23:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 23:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 23:20:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4e9726a7-6d55-43f5-8209-409667f5c56b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 23:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 23:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 23:25:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e2e095c9-a2e7-47fd-bfc3-3e44b0754159","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 23:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 23:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 23:30:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"754fe383-0816-475c-82f1-18d50fef205d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 23:35:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"41edbdf6-9569-4a02-840f-da3c6c7fedf8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 23:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 23:40:00","totalConnections":1}
{"durationMs":1.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6159cd57-5c0f-4767-a5c5-3ad8afa036cc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 23:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 23:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 23:45:00","totalConnections":1}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ead836e-f84a-41ba-84b0-73d4b007439b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 23:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 23:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 23:50:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1fd41a84-e924-4276-b9c0-d854bf16f4cb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 23:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-26 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-26 23:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-26 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-26 23:55:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8abdff62-81ed-4105-9d6c-cdabb143f20b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-26 23:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-26 23:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 00:00:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"501dacad-78ab-484d-9ac3-f39329a1bc0c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 00:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 00:05:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"48ab4a03-1d99-48e0-8e67-1f51fd7d7ada","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 00:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 00:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 00:10:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"35035683-94d4-4ebf-96e7-1a58cbb2e12f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 00:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 00:15:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9610530c-a704-43ff-bb14-4bb6d6c91834","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 00:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 00:20:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"597e8a76-ac3c-4857-8c01-8175feb9ae51","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 00:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 00:25:00","totalConnections":1}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"44f91882-fac1-4cb5-962d-d4d4688167b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 00:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 00:30:00","totalConnections":1}
{"durationMs":1.71,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"62744779-5fb4-4c7b-9ea6-0d8a53ceb346","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 00:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 00:35:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"275b97e5-06e8-448f-9509-4d7a30223799","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 00:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 00:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 00:40:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"61c58c63-4d0b-4d88-b745-76b5af4acdb3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 00:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 00:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 00:45:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f252d0e0-4963-4283-91cf-ea77220682dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 00:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 00:50:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8cc91ef-356a-4ec7-bd4f-875f4763eebb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 00:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 00:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 00:55:00","totalConnections":1}
{"durationMs":1.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6d009e2c-a22c-48b2-9d31-fa6cadf046d2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 00:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 01:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 01:00:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"94f934be-0bc7-4fcf-abd1-31e63c086116","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 01:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 01:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 01:05:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"acadab3f-973b-4798-9952-8a9b5eb3321a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 01:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 01:10:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b3f17fd5-c6a9-437a-b338-111e7100ec06","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 01:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 01:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 01:15:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"66546359-57ce-4079-881c-cea2dda39339","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 01:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 01:20:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"965323cf-e11c-44ca-91c2-bedfbab99527","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 01:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 01:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 01:25:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0450e036-1c22-473b-ada2-63e76d8b2199","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 01:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 01:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 01:30:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"384c8719-0dfb-4349-ba75-9421daf4776c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 01:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 01:35:00","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fdb4114e-5b20-487c-b8c0-041855e4466a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 01:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 01:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 01:40:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"466b013e-9008-41c8-9dae-44dd2163766c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 01:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 01:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 01:45:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4943bf3c-cedc-4b82-824a-c88c98eac3b3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 01:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 01:50:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"444236bf-66db-43a3-acb2-47d567aecb25","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 01:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 01:55:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f3e4600d-1246-41a1-946f-16b72d95a8fa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 01:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 02:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 02:00:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1198f35a-3842-4d30-a69a-a1e8e15a2cba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 02:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 02:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 02:05:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"328a23e6-ec79-412e-82f0-12610af1ace8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 02:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 02:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 02:10:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4f36da81-c413-468c-84c7-0f042815ac55","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 02:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 02:15:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8cee9d42-975a-4779-9c17-90770305ce32","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 02:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 02:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 02:20:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4c0340f3-b0d9-461e-a2a2-4be9c82e0c80","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 02:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 02:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 02:25:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd821e4f-c24b-4e8d-84c2-aeea387db9c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 02:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 02:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 02:30:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"54c89d2b-2868-4295-881b-8338065cb0bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 02:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 02:35:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9db73bfe-fa2f-4cb2-a598-55cf7c3c3ae1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 02:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 02:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 02:40:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b2e184a-b64f-42f0-98cd-123cc56c4754","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 02:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 02:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 02:45:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa5e5957-2d06-4318-a072-d7abe09fa7d2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 02:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 02:50:00","totalConnections":1}
{"durationMs":2.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0d1cf517-fbb5-49b8-93cf-9b7418b1b516","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 02:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 02:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 02:55:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"589d2c5f-cdb8-4b19-904f-401f29e23d3d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 02:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 03:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 03:00:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b0732a6-acea-49a6-9192-2d1e409febac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 03:05:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da122b1a-7d92-4b1c-bf60-bf510b34a672","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 03:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 03:10:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5cd6d15c-22c2-4a57-91de-802f4928094a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 03:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 03:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 03:15:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0c88eed4-deb0-4774-ade4-49a001ca27cf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 03:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 03:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 03:20:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b350ff16-a878-4e9e-b792-b36e1b9407ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 03:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 03:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 03:25:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d49038a-91a7-412c-a24c-c5af9efa8c87","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 03:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 03:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 03:30:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4a68ac97-7a77-463e-9ef6-53c5404915bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 03:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 03:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 03:35:00","totalConnections":1}
{"durationMs":1.69,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b93b15b1-9678-4ece-b7a9-2c1bad68092a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 03:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 03:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 03:40:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"300b940b-5935-4ba0-9b0f-8e816ad76c76","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 03:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 03:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 03:45:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b98c3a87-a460-434b-8c12-080ff86cf343","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 03:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 03:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 03:50:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"121542b3-b10d-48c7-a4f2-480b8c7f2910","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 03:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 03:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 03:55:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dd166f07-7edf-40fa-9ab5-0504249e7719","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 03:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 04:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 04:00:00","totalConnections":1}
{"durationMs":2.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"63c4494d-0a8f-49fc-805f-0c42424ccbae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 04:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 04:05:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2c560a91-7ae1-4200-992f-ea9423d90f6f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 04:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 04:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 04:10:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"53ca958b-14c3-4d48-b033-bc3ecfa6f5e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 04:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 04:15:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"922d5eeb-5005-4c5b-a1ee-972239fef4ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 04:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 04:20:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a2e9c8d2-8c2f-43b9-b8fc-96d1781705b1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 04:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 04:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 04:25:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dafc38c0-40f0-426c-8569-b90894895ba8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 04:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 04:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 04:30:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"16e94362-616c-44f9-afe6-02e0a4ea41c1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 04:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 04:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 04:35:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3cbec610-3b2d-410e-a08b-8f4653803aee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 04:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 04:40:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b3258a62-07ed-4885-83b6-ed6237512c8f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 04:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 04:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 04:45:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2911df11-3a50-40ee-a676-efeb51d46839","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 04:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 04:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 04:50:00","totalConnections":1}
{"durationMs":2.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"03396b6b-0cd4-4d03-b0eb-8ca869dfa184","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 04:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 04:55:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0857954f-44e6-4b48-b4dc-7a6071706354","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 04:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 05:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 05:00:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c65746c1-eae7-4ffb-ba03-62fcd6f50d46","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 05:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 05:05:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4dabe565-8bb5-4e37-a37e-88e60094e875","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 05:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 05:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 05:10:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1d22a62e-934d-40aa-87bf-865e3ac63d2e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 05:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 05:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 05:15:00","totalConnections":1}
{"durationMs":1.71,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6900e30e-93bf-4b99-8a20-e77b33e5ddb6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 05:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 05:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 05:20:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84e58578-0d7d-4eed-a86d-356743d70806","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 05:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 05:25:00","totalConnections":1}
{"durationMs":2.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fbc04539-7c59-48d4-b59f-9750b869bdd7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 05:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:28:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 05:30:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a10cfb9f-b21c-4616-8a70-4fc8119ca810","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 05:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 05:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 05:35:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5f0c08ec-9eaf-458b-bb04-e25ddcf18544","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 05:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 05:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 05:40:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"26696613-f445-49c3-95d5-7dc367e34793","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 05:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 05:45:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7640d05f-b4ed-44f9-a822-4e63ba4ff35a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 05:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 05:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 05:50:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"42552251-d600-4219-96e4-f5b5c7106c65","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 05:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 05:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 05:55:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"65660f0b-2800-475a-b6e5-3e87134e0b47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 05:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 06:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 06:00:00","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ae1d713-9067-487a-8be4-3f23da30fb77","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 06:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 06:05:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6deba3b3-e330-4eca-974b-39f447cd0bfb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 06:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:10:01"}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2497de04-d63a-48f9-932e-d3b16fdd71d2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 06:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 06:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 06:15:00","totalConnections":1}
{"durationMs":2.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b2164b7-bfea-42f5-bd9d-c68af3d96e7a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 06:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 06:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 06:20:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ee18c4bd-0860-4277-aa00-64add81902b4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 06:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 06:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 06:25:00","totalConnections":1}
{"durationMs":1.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de9f0b60-18f3-4cce-97a1-0ffc61a3d1c2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 06:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 06:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 06:30:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5521dda8-cdc6-416b-939d-9a62dadda13b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 06:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 06:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 06:35:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72311d24-ff41-4892-8ecd-51aec43eb0a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 06:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 06:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 06:40:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a570e883-6d7d-47f4-9f7d-b1c60bce229b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 06:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 06:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 06:45:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da33ae97-eeeb-4116-adda-556ac5ca3a9d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 06:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 06:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 06:50:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e90137ec-ba51-40f6-ad4e-e7a2f485faac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 06:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 06:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 06:55:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"82b8b519-b36e-4543-add4-4a6386b1df83","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 06:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 07:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 07:00:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"660d87cd-0b0f-4189-bf81-fcdbd3f9d371","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 07:00:03","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 07:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 07:05:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fad89e92-da2b-44fd-bf73-e4af951741f0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 07:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 07:10:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aec0bba0-3b3c-4946-b0af-2638b5a67edf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 07:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 07:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 07:15:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b0cf957b-d546-481b-a66c-c7db4485965e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 07:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 07:20:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e896adcc-b148-41b9-bacf-4be7321a3e14","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 07:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 07:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 07:25:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f400714-7c81-4f6f-82fb-87e2680243f1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 07:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 07:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 07:30:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"31f7e62e-ffde-469f-9c11-929bad53baff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 07:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 07:35:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 07:35:01","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70442c66-ab92-43bd-852a-ffb465deb52e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 07:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 07:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 07:40:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae919685-7ced-4170-96d4-3b956951b853","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 07:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 07:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 07:45:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1735d38c-6f2d-423b-b635-b69c0e85ceaf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 07:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 07:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 07:50:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"085a45c0-775c-47dc-b891-48ed6db23e19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 07:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 07:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:55:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"415f41ac-44fb-4d44-b50f-b651c9c2a3a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 07:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 07:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:00:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-08-27T05:00:00.085Z","service":"cbc-sms","timestamp":"2026-08-27 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-08-27 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-08-27 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-08-27 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-08-27 08:00:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-08-27 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-08-27 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 08:00:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"138b6149-4e86-4593-beba-a73070838f64","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 08:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 08:05:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6544e4e8-98ce-4150-8295-a72602353311","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 08:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 08:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 08:10:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5a6747dc-71f4-4ffc-84f2-98cbc593a9f8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 08:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 08:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 08:15:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8daeb8d-9354-4dea-9be0-1159fe27ae1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 08:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 08:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 08:20:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"621703c2-84b1-4a95-a046-5e4d51b527e3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 08:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 08:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 08:25:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72da6526-b5b0-4319-a814-3b6c06650de2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 08:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 08:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 08:30:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"41d336cc-ca9f-40c7-9d1e-db43cd7e726c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 08:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 08:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 08:35:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3c5e708d-81c9-4a46-abe2-0b6ee85c9645","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 08:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 08:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 08:40:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92db1901-2ce8-4529-8d10-e41de49075e6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 08:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 08:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 08:45:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cc5d617e-b8da-4db1-8c93-51a8b48bb99b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 08:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 08:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 08:50:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"995605a9-c15c-4ab0-ae8b-6497e14277f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 08:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 08:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 08:55:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f7bc3d6f-387a-4712-bf55-ff16b26320d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 08:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 09:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 09:00:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"38171850-fe19-4293-96a0-1de90065c548","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 09:05:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fa31eae8-3ac9-459a-a3dd-aa816b4ed91d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 09:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 09:10:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"497a39db-3e0a-4477-880d-95c058e0665b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 09:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 09:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 09:15:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"765680d5-ea97-4b35-a62f-f941b08518c3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 09:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 09:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 09:20:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"81ec7a01-d326-4e39-a87b-191d5c60bc5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 09:25:00","totalConnections":1}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"54e9a259-5ec5-406f-8a0f-8477c9d51e31","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 09:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:27:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:29:00"}
{"level":"info","message":"[CRON] Attendance alert started","service":"cbc-sms","timestamp":"2026-08-27 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-08-27 09:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 09:30:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cb5f515a-c9a3-4dd9-8559-17c0e0c44219","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 09:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 09:35:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3c29d2cf-76f3-43d4-b855-6b916a84c3d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 09:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 09:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 09:40:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05932554-dca1-41ce-8283-2c091083271f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 09:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 09:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 09:45:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"90ef97dd-9714-461f-83a4-5fac74e718b6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 09:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:49:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 09:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 09:50:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cf6a569d-a6f3-40c8-8160-76f03a9b502b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 09:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 09:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 09:55:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"42dde944-46b3-46e0-9f98-c60d1077f7b7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 09:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 09:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 10:00:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7d8e9d6-3538-4c1a-a165-1ea1f80f3520","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 10:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 10:05:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6436653a-a287-43de-a2a1-2b190edf75ec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 10:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 10:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 10:10:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b6b475be-4d27-439d-b02a-d0b292905a35","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 10:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:11:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 10:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 10:15:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"750c45f8-50c1-4a6e-ac2a-b37f58680345","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 10:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 10:20:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bea369a9-7c87-4b9a-83c4-59b7128bc795","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 10:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 10:25:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d52dab49-969b-496c-a82e-dcf56dc391ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 10:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 10:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 10:30:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c82e64ef-05bf-425b-89be-ab1fc0715d1e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 10:35:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3dba8774-ee6f-4a3e-945d-cb0fccbe8718","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 10:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 10:40:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b4a2742b-3132-4c48-8e63-13f2f4ba0b8e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 10:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 10:45:00","totalConnections":1}
{"durationMs":1.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7c11be8-ebaa-4309-adbb-276762de9184","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 10:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 10:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 10:50:00","totalConnections":1}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4f284635-91e0-4f60-a285-7fbc2b7e80c4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 10:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 10:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 10:55:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"13450e05-70e9-4b41-a1ac-9c5843c61030","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 10:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 10:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 11:00:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a3cca2a-d32d-4833-8c67-5d253280100d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 11:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 11:05:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb29278e-f8c3-481f-aca8-e76277a73d4b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 11:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 11:10:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"186df0c5-5cae-45ee-8e45-d6af15ceeca5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 11:15:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a2626ec3-d04d-4572-ba44-3d9837857561","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 11:15:01","userId":null}
{"durationMs":403.84,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/public/plans","requestId":"27feace5-f3c9-4d54-9f9c-ff392ce161b6","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-27 11:15:12","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 11:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 11:20:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f1af730-1b50-4ca4-822f-07e08ffa5fbe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 11:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 11:25:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"64e77ae9-376e-40e2-bb31-85b8135a0f80","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 11:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 11:30:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3f33d0ee-ce6a-4b12-9c69-995086ad1cb0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 11:35:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2786e10a-0fc7-4380-9584-547a563bf90f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 11:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 11:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 11:40:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7cf86cc2-4bf4-40a0-9b77-08127c8004dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 11:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 11:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:45:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 11:45:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 11:45:01","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"52c5bd8a-fca9-4888-bdca-4d5f3cbc3ea9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 11:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 11:50:00","totalConnections":1}
{"durationMs":1.61,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4515bb66-c31f-4c74-8b21-e18bc470f528","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 11:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 11:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 11:55:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea31f723-1bda-47e7-9571-3915d8e8207d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 11:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 12:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 12:00:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce5c9aac-a8e2-457a-b41d-bb30bd5a8539","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 12:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 12:05:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"851a964a-90a8-4f29-98a4-5c43c23825fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 12:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 12:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 12:10:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1f57b67d-c4e1-4272-83e8-19322508cce0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 12:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:11:00"}
{"durationMs":1.71,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1e774b7-49e2-4c7a-b553-1e7ca36e64ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 12:11:26","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 12:15:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8eedea76-d055-4eea-803c-276f1dfee7d0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 12:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 12:20:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8e2c600b-304e-4471-8eb2-35a65c884d8f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 12:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 12:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 12:25:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eb710dc0-56de-4203-a92a-a0c8a542c107","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 12:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 12:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 12:30:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f851297-ad38-46d6-b09b-ea52fae1a702","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 12:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 12:35:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"39ed8746-4576-4df3-86c7-37875c944c27","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 12:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 12:40:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"545f3745-ae2d-4e72-93b0-bc48c85d9666","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 12:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 12:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 12:45:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1e4e6c1d-686a-4ab7-b374-7afb636316d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 12:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 12:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 12:50:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c49180ee-b3a1-4a63-ae09-94491641d17a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 12:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 12:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 12:55:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5e00be8-f734-4ade-90eb-8ced972f937b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 12:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 13:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 13:00:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"627d1aa8-f350-4e04-97a3-18ffab1dd73d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 13:05:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"78b64205-70e7-4abf-ab7f-98fedc2d2dcf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 13:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 13:10:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7cdd760b-d7dd-48c8-8730-a8ff6539a828","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 13:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 13:15:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0849fa29-0902-40ee-ab52-00eb1f192ae0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 13:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 13:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 13:20:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aca2f29b-74ee-4f0f-965c-04d6595789d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 13:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 13:25:00","totalConnections":1}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a85c8bcb-8273-4e37-943e-55d50f381b0f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 13:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 13:30:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"23119a03-dccc-47e4-8586-c0c2aff0f756","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 13:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 13:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 13:35:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cbf31da3-6cd2-4bc6-8c90-e8a016d71bea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 13:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 13:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 13:40:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"203ef8a9-01e6-4e2c-b245-1d06e1cd50bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 13:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 13:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 13:45:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d0d4a399-ceab-46fe-bcfc-0a68c0839778","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 13:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 13:50:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dbcd4098-1053-4d66-8f88-495c6ad31e7a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 13:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 13:55:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f2ce885-6c8f-4d42-962e-50e1a4af0634","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 13:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 13:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 14:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 14:00:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4fa4a869-c547-47a3-b518-cf29534365dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 14:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 14:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 14:05:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2e858c80-7248-47cd-bb34-07212dd1a1df","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 14:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 14:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 14:10:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"38524852-71e6-4980-bbdf-f9b3f58f3645","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 14:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 14:15:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f32fc6a0-c68a-4146-a9dd-f48a80937644","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 14:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 14:20:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c647111a-4ad7-4f35-8ed2-3ddb1e561585","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 14:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 14:25:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9403728-b185-4951-9560-8eb5263b35d2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 14:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 14:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 14:30:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2871bb6f-bfea-4e28-ab67-6eaed05077a7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 14:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 14:35:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b596e18-b383-4fc4-b7ff-c04a838e19d2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 14:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 14:40:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df796a6f-a849-471f-9254-d6afeec08d6d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 14:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 14:45:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"347034e7-f356-408e-982e-36f43950a729","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 14:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 14:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 14:50:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a8212a94-80fc-4349-a216-e2c31204a63f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 14:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:52:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 14:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 14:55:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25d42a6e-84f0-4b9c-bd76-aca9376592a6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 14:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 14:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 15:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 15:00:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"52b53084-d5f6-4975-9a2a-2342dcee6d23","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 15:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 15:05:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c618025c-6511-4e19-81fd-5267d7a4246a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 15:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 15:10:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"56ec0fb9-d6da-4adb-8c4a-ab4183954959","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 15:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 15:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 15:15:00","totalConnections":1}
{"durationMs":1.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"62a1367d-12a7-4d9e-8f04-25e71400e2ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 15:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 15:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 15:20:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"36ff0a32-fc65-4e9a-94f3-217b5301e55a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 15:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 15:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 15:25:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f9d73e6c-ddf5-4c2c-b6df-2dc829f769b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 15:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 15:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 15:30:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5108caa-5b35-4c71-bee1-1105ffbae294","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 15:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:32:00"}
{"durationMs":3.62,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/public/plans","requestId":"81958583-5922-419a-ae49-a29ac7df8c1b","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-27 15:32:44","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 15:35:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cf1c8cd0-8172-47eb-96ca-d0c4ef5b2a19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 15:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 15:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 15:40:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d791588b-dba5-4ef6-ba21-7cb0b02b8a8d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 15:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:41:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 15:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 15:45:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bed7c7b7-2c89-42ec-9b7c-bb7414491e93","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 15:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 15:50:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"27372950-13ac-4725-8b6b-4ae5803d69da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 15:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 15:55:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b710e0f5-7bd6-4bf0-b985-c3553426a69b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 15:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 15:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 16:00:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e9181e24-d416-47cc-82df-ce5c0d9d5b06","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 16:05:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"925598ff-4de7-4691-b902-a86569f54f10","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 16:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 16:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 16:10:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0abf9c57-cd48-4da4-aa51-04859fb8c095","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 16:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 16:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 16:15:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"45783c15-e56c-4d16-9da2-e1165d1dc00c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 16:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 16:20:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dc88ba24-a46e-445b-aab9-6a55c8364cd8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 16:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:21:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ef54de1f-e111-4c8a-85f2-8422d10c3721","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 16:21:03","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 16:25:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3925359d-9519-4d48-b9aa-80acb941f52c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 16:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 16:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:30:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"150882d6-ab53-4a98-9912-4635f2e265df","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 16:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 16:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 16:35:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9f1040a9-04a3-4a7b-aed4-25b35cf42206","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 16:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 16:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 16:40:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e868ebc2-139b-4cad-8c4d-d6b984c3facb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 16:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:44:00"}
{"durationMs":2.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ca8787c7-f51c-43c5-805f-023bd629a1b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 16:44:14","userId":null}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"044002ff-3e12-499a-8d93-8619fff2353f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 16:44:21","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 16:45:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b98ec25d-7280-4c1a-b844-72fdb91f7eda","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 16:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 16:50:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3d3f2cf6-4b59-4674-8b93-bae4060165d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 16:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:51:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8dec63d3-cd1c-4df8-a548-b78c9ce2eba0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 16:51:10","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 16:55:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"73ac73e6-3442-4d6a-ad1e-f0cfb2678429","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 16:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 17:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 17:00:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a837cfd4-ac2a-4543-8e86-76e8baea3488","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 17:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 17:05:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51cba139-f548-42f5-85a2-3419a61505c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 17:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 17:10:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"554a2bdc-9262-40a3-a5de-f4ae5b02b685","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 17:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:13:00"}
{"durationMs":2.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"48b23060-9da2-4bbf-b0f2-a2f43d1cc904","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 17:13:56","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 17:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 17:15:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"06739468-5768-4498-b85b-e953dbbfad33","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 17:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 17:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 17:20:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1733615c-acad-4e88-8bdf-fba29e84289a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 17:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 17:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 17:25:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c68bc1a5-823c-411a-b751-b691d6c6a132","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 17:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:28:00"}
{"durationMs":2.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c51eca71-4af1-4c80-9c46-146fe2a2c97d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 17:28:10","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 17:30:00","totalConnections":1}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ab995a3-7616-4c6c-899e-38f3944a7805","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 17:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 17:35:00","totalConnections":1}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"15de21ad-5589-4f59-9d2d-9d47776e361a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 17:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 17:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 17:40:00","totalConnections":1}
{"durationMs":1.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1974a62-98e6-46e0-90de-7d97ebec1be2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:42:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 17:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 17:45:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a373176c-e324-48e7-8428-6dae6b8b21f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 17:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 17:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 17:50:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5fbb2776-77ee-4b7c-a535-cf7273356031","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 17:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 17:55:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7914cc0a-4c78-41a5-9782-1da3610dfd4e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 17:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 18:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 18:00:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cf325926-c9cf-4ff4-971d-20f1ae7a70db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 18:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 18:05:00","totalConnections":1}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bf57b076-c8cb-481a-9c92-cf445eb398fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 18:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 18:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 18:10:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a55ea29c-cfbc-40ee-9d74-5fca418e5552","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 18:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 18:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 18:15:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"10d8edca-d3b0-4311-bafa-cd8625d2c5a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 18:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 18:20:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05c48d68-16d5-44da-957d-1d1f2f1e74e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 18:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 18:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 18:25:00","totalConnections":1}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0671b9e1-0e09-4f36-9eb9-262612a9de19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 18:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:28:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 18:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 18:30:00","totalConnections":1}
{"durationMs":1.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d72b50be-dcd5-4178-9b7a-857c6b560c71","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 18:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 18:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 18:35:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ebebdf0b-bf67-4e16-84a9-762d41f64081","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 18:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 18:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 18:40:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8566b2aa-2ce8-44b2-901e-ab6d3fab5bb1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 18:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 18:45:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9f580c8-e3fd-4944-8683-73b2a2fa5835","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 18:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 18:50:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"759f3ad0-e89e-48e1-a991-e370334292dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 18:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 18:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 18:55:00","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0bda0d64-7e77-4870-977e-b448d9476818","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 18:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:56:00"}
{"durationMs":1.03,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2ec4a2ad-6da3-434c-be4c-0727c4006936","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 18:56:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 19:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 19:00:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7dfec88-6b16-4b0a-a560-3c3b3c3ef9d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 19:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 19:05:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"79a99c3b-b782-4df0-8dc3-27904c4826f0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 19:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 19:10:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"130b3b47-0749-417c-85af-d60d3444f77f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 19:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 19:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:15:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c30596a3-a773-406b-9eb9-d4490a76b0c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 19:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:17:01"}
{"durationMs":1.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"32637418-a5d4-408f-8d1f-23eb5d7c6ccc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 19:17:54","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 19:20:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a71f79e6-2285-4e8f-b43d-dec430ae2946","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 19:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 19:25:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"08738722-881a-4f7b-923c-00e20e83d0ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 19:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:27:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9c4ec2d-6b20-4ec9-a616-275d82a05a51","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 19:27:34","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 19:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 19:30:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f3ce7aa2-c065-477f-9321-0761e2a73f79","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 19:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 19:35:00","totalConnections":1}
{"durationMs":1.7,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa939208-3d5e-4792-8adf-331caeb3af4b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 19:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 19:40:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dac345c3-f929-42d9-8982-45f6c5d5f1e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 19:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 19:45:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de69efdb-2888-4c19-9ceb-e5da65e466cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 19:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 19:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 19:50:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"754d7d42-b980-4496-abc4-bea1de952b33","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 19:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 19:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 19:55:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84ebbd5c-7398-408c-adf2-98dcfc1be8a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 19:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 19:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 20:00:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0e2a848a-09e3-4795-b064-ecc8fcac63fd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 20:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 20:05:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8fcc961f-246d-4139-b2a3-9b4af3f394a3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 20:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 20:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 20:10:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d78cce6f-dfe5-4660-9158-6e2fb1e998a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 20:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 20:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 20:15:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7bdac2d1-21ea-4094-9489-57159a26a3db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 20:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 20:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 20:20:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e4ec25f8-b448-4122-a1fc-141e18d93c1e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 20:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 20:25:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d0f551b7-9781-4aab-9919-45684a15ea9e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 20:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 20:30:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da2a1cca-6de1-4404-b0ae-426b9c0494d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 20:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 20:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 20:35:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"50701f8d-d58b-4029-85d2-501c80517ec1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 20:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 20:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 20:40:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"44d77e0b-efed-49b5-a8d1-535d9f86dd85","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 20:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 20:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 20:45:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"174e63bc-03f1-4435-a1ff-9c35d158285f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 20:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:46:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e26643b9-c390-4f12-a58b-6c12463f5637","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 20:46:10","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 20:50:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6f8fba3-05a5-4a33-909f-2accd23ac559","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 20:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:51:01"}
{"durationMs":1.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a85dda7-6ba0-4527-89a4-aed3a08d45dc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 20:51:47","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 20:55:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d98c5825-43f2-4c99-a5b3-b5ed928deb13","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 20:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:58:00"}
{"durationMs":1.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1fd17632-63c0-42e8-b1db-cc5b6498c4b3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 20:58:31","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 20:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 21:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 21:00:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7487d734-d444-45f2-bd83-55491a5a8e92","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 21:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 21:05:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"37c2b6fc-537d-49e7-8212-a29579f368ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 21:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 21:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 21:10:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ba7ee93-0b03-4b38-94cd-ddc9125c92b1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 21:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 21:15:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c369460e-9749-440e-99f3-b0445fa905ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 21:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 21:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 21:20:00","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"49fe6869-3afc-4e92-9652-f71f25ac8a0d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 21:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 21:25:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5673c6a2-6871-48b4-80ba-6ac305cf037d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 21:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 21:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 21:30:00","totalConnections":1}
{"durationMs":1.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7f205711-773b-432e-b43e-f21a8863cf27","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 21:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 21:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 21:35:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7326bbb-e5a7-4d50-a543-6e270475c3f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 21:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 21:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 21:40:00","totalConnections":1}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"08f8c6d5-28af-4692-be05-d5bdd980f10c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 21:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 21:45:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7404ac1c-b77e-44c4-8b4b-642d99a970d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 21:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 21:50:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"37c44290-4249-4366-9287-a2426837750f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 21:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 21:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 21:55:00","totalConnections":1}
{"durationMs":1.66,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b684b573-932e-4689-a9aa-4159f298c6fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 21:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 21:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 22:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 22:00:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f213610c-cb56-43be-b49d-9f7a4146d9da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 22:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 22:05:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"abef4d36-6cab-4ab3-9cf5-f82a550ad8d0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 22:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 22:10:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12d10ea9-3289-4220-9f4a-a3474db48d95","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 22:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 22:15:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"db8f9abf-57d9-46a9-847a-f337f43e78fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 22:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 22:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 22:20:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cc94fc92-6cff-49f5-8fed-2663166c7d2c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 22:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 22:25:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"efac4416-530a-4efb-bc8c-690b25998bf6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 22:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 22:30:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"07f72194-18f0-4b73-97ad-c0cbf192984a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 22:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 22:35:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad365dd9-7140-4b56-b3d9-d44560ca13de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 22:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 22:40:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fef63b4a-144f-43ac-8cb5-32fbaf579715","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 22:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 22:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 22:45:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"75e15c20-70a0-4be6-82b5-0978b9a26a19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 22:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 22:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 22:50:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"76e76177-40e2-4821-8820-02b07ff1646c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 22:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 22:55:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2abe418e-fceb-4fb9-911a-e247109472b3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 22:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 22:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 23:00:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ac12ad0a-cef6-4801-91de-580659ad4940","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 23:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 23:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 23:05:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ecffc634-abb6-4e4a-857c-310583301e9d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 23:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 23:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 23:10:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8bab7976-1a93-44c7-bded-1d02b5375d40","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 23:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 23:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 23:15:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1abb5d71-ec91-4ff3-8b6d-4380a57d6b15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 23:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 23:20:00","totalConnections":1}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f12b7bcf-ea6f-4849-bea8-251dabd8cc20","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 23:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 23:25:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4e4486d0-305d-4c73-b325-d76efe3e1de1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 23:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 23:30:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"239fd047-8701-4848-ba1e-07cfce8d6401","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 23:35:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"238371e0-0103-425c-b366-e87343356cfe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 23:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 23:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 23:40:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f360fd3-350d-4f99-9104-d52e8488990d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 23:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 23:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 23:45:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"458f9642-c4fa-4b9e-9e1a-d5deb3660c5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 23:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 23:50:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9f487bd6-1ef3-4509-bfd3-745d22a635b6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 23:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-27 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-27 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-27 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-27 23:55:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bda88579-9631-4d41-bbf5-56ac2e0d9061","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-27 23:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-27 23:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 00:00:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d374ebe2-964d-4c09-a3df-1f29ee810d35","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 00:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 00:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 00:05:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a8154d62-ef77-4eb2-919b-7b6df3f01dcd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 00:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 00:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 00:10:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b3eea6c0-f96e-49be-99fb-ebbb1b7b8bfc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 00:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 00:15:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4770200e-02ca-4748-8493-223c00db0644","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 00:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 00:20:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"07ebc209-e163-4548-b736-5d7c56bf7fce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 00:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 00:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 00:25:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a41bce5c-0008-4934-a6ed-bc0574ccf087","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 00:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 00:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 00:30:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00c11d0d-ea33-42e0-b2e0-142b40164d3f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 00:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 00:35:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"123a0268-3044-4ad9-978d-26bcbc288cdf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 00:35:03","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 00:40:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9622d6e6-9066-47f3-b413-c40cde36587a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 00:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 00:45:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d5f3060f-65bb-45f6-b269-2ca9507173aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 00:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 00:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 00:50:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"027cf0ed-2f23-4bfc-afc5-0613f8dfbcde","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 00:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 00:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:55:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 00:55:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 00:55:01","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"99d1503a-867b-4684-a24a-24756d27feb7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 00:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 00:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 01:00:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6e563f5-f6e2-4a98-b5e0-974fedfdcb41","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 01:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 01:05:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c1042111-c72e-4917-8a0b-c499ecffe1fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 01:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 01:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 01:10:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9694858-bcc1-401f-88d5-ba52df82a4e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 01:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 01:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 01:15:00","totalConnections":1}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bc5d7d22-0f3d-4902-9325-9f25e0bbd7f5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 01:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 01:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 01:20:00","totalConnections":1}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bca0ee86-f768-4e3e-9556-d79c873175af","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 01:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 01:25:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fadd0175-b8b8-4ae4-beb9-a52a44096e0b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 01:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 01:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 01:30:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"62bf5788-44aa-4900-8ab5-fcf16c41c91b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 01:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 01:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 01:35:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"908c1553-7e6d-4c28-bfb2-3243f2121d44","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 01:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 01:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 01:40:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"82a552c9-5bf2-49e7-aad6-fdeaf777a80f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 01:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:41:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 01:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 01:45:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51fca812-9d88-43e0-8277-c8683c26fabc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 01:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 01:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 01:50:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ec5d039-6521-42f0-95b7-7aab44e77590","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 01:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 01:55:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0478b74c-ad79-458a-a188-50d3f3856f56","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 01:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 02:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 02:00:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3fe319b5-ddf9-4547-a9ed-fcfbaf0df4b4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 02:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 02:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 02:05:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cb699544-6644-46bf-a624-7db8bd7a357f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 02:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 02:10:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f8ce7d9d-45c2-4e5a-bb86-e1db758bc56a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 02:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 02:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 02:15:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3717f01d-a932-4302-b18c-a53425da231c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 02:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 02:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 02:20:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c00a9d7b-db9e-468c-ba5b-27ce8c4b9b70","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 02:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 02:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 02:25:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c17d1c1f-090b-451f-89b8-7ecd109b10bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 02:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 02:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 02:30:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b40ca1da-ded1-4f6b-b89a-fbc85e85d2eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 02:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 02:35:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b963c00e-ee5d-4e15-8be4-f01168d39040","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 02:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 02:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 02:40:00","totalConnections":1}
{"durationMs":1.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a50ab169-36c5-4249-9571-742e45a9046f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 02:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 02:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 02:45:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a48df7d7-8ffd-4aaa-b71a-54722e388ae5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 02:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 02:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 02:50:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a6fbf2d-dfed-467b-b5d7-42df62d330e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 02:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 02:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 02:55:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"62307208-70dd-430a-9baf-0690c8878f69","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 02:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 02:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 03:00:00","totalConnections":1}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d7c1480d-541b-4611-b2d0-bd435ad210b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 03:05:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce7ca0f7-7d95-4b5f-8429-5fe755e8e477","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 03:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 03:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 03:10:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"479fe985-b9fb-4993-a083-ee5528d07a02","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 03:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 03:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 03:15:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de5abdac-a555-49d6-9437-bc4dd71a3a13","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 03:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 03:20:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"01195003-09f5-4f03-a0b1-c24ff0973be8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 03:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 03:25:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"820f7326-59b3-487f-a04f-fb574870c986","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 03:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 03:30:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7099fafb-4c92-4f20-96cd-350d537b187f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 03:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 03:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 03:35:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f13fe861-3977-489a-8d53-dffb6465943e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 03:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 03:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 03:40:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2daba771-b28e-460c-8def-6cdb7c6d0773","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 03:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 03:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 03:45:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"805fa6ba-402b-4bda-92d6-123eccc9cb1d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 03:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 03:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 03:50:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5f6e910-b553-459c-a0e8-bc759b3a6afc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 03:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 03:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 03:55:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5f0bc8f1-d9e4-46c7-aa68-02ea7499c26d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 03:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:58:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 04:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 04:00:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d0481499-7662-4f44-acd1-74d295bb00e4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 04:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 04:05:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"27fa39c0-811b-45ee-9025-f9b6bb798ada","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 04:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 04:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 04:10:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05d26996-5d47-4eab-9db4-ede42061404c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 04:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 04:15:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ca8838b0-2bf7-44fb-b1e1-31376d76d595","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 04:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 04:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 04:20:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a8002783-167c-4701-a5a1-8400b1d82ac9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 04:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 04:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 04:25:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"939abc5b-0d63-4d49-b030-fd6b5e625f8a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 04:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 04:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 04:30:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1d1b73ac-ca21-44b5-8a19-50ce42559d73","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 04:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 04:35:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5e1419c-a073-4f5f-b4f3-6c1e6836e719","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 04:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 04:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 04:40:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"94ab679a-41a5-47c0-a65c-5f4140bb3b72","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 04:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 04:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 04:45:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aad84656-be2a-4343-add5-427878e00cdf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 04:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 04:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 04:50:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a5a8c1d1-6a32-4b81-9090-a8bb4f678cca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 04:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 04:55:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b5e1bdbc-586b-4822-a752-6300511be5b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 04:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 04:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 05:00:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5298b61-02a4-429b-bf44-578025e8973a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 05:05:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bbaf76f0-1f92-42a4-899d-2c3a6ee3a9d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 05:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 05:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 05:10:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c71b2783-636a-465d-b997-df975bcad943","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 05:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 05:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 05:15:00","totalConnections":1}
{"durationMs":1.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8a48804b-7d15-410b-85b9-2932751fe4ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 05:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 05:20:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4c452c38-91d3-40c4-9ad1-bd13e7bab6c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 05:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 05:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 05:25:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"839b24c8-9360-4374-86f5-b8cabb10919b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 05:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 05:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 05:30:00","totalConnections":1}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3641b242-22bd-46e1-a199-2f02f7b2c2fa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 05:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 05:35:00","totalConnections":1}
{"durationMs":1.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5c08469e-0a44-49ff-bbe0-f42bdb8c7f6b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 05:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 05:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 05:40:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c6a0c4ef-1266-48c2-9de5-dfa06c7e39ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 05:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 05:45:00","totalConnections":1}
{"durationMs":1.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"232a7859-9f3f-479a-8025-fc0e2192893e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 05:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 05:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 05:50:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 05:50:01","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd8bcaf6-5d58-4e21-995e-557325587537","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 05:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 05:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 05:55:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b350547b-0ba6-477f-8586-6da85c382913","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 05:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 06:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 06:00:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"01541917-545a-4815-b305-5f148c1335a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 06:05:00","totalConnections":1}
{"durationMs":1.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a06d2fe8-f125-4628-9abd-ec27babd9aff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 06:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 06:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 06:10:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ffa425c2-fe5a-452a-ba64-41ca5616993c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 06:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 06:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 06:15:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dee1c47b-d7b5-4471-b2bb-ae35a17bc325","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 06:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 06:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 06:20:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"237e5230-a59f-49c2-bb13-ea1d0c8933cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 06:20:02","userId":null}
{"durationMs":7.01,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/public/plans","requestId":"4db9977e-81dd-4300-b131-173db8a23785","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-28 06:20:42","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 06:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 06:25:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5a80a5e8-5c1b-4bbf-a2c9-5ad27402a88c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 06:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 06:30:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b6428afe-1025-4e53-b3ef-806ad0fd8827","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 06:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 06:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 06:35:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7bb51bf9-94c3-424d-980d-e5eab6851325","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 06:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 06:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 06:40:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a014bb01-204d-47ea-8b92-fd36ce0e2585","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 06:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 06:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 06:45:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a0d7fa53-ae4f-467e-80d0-b52a8a95eedf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 06:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 06:50:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ffe2c93-2777-40a4-84fb-b44412acb54f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 06:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 06:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 06:55:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72daea0b-59a2-40b5-9945-e2a144fd9a89","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 06:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 07:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 07:00:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"50386d46-ca1a-490f-bc62-65cdd3dd7de2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 07:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 07:05:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1973875-467c-47ca-915b-8fbaaed90f00","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 07:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 07:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 07:10:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"03a0b692-733f-4ba1-9993-dc3615d33da4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 07:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 07:15:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c1855d9a-f52e-4b3a-9fd7-65e2490598e6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 07:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:20:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51b0e7cf-c65a-49b7-9542-0b052af5e02c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 07:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 07:25:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3aaab1c6-49db-4e59-9541-8af8cf420047","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 07:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 07:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 07:30:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ecfdd111-d371-4481-9361-3064541b7641","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 07:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 07:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 07:35:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"29916251-5e0c-4b2f-b972-96665910331a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 07:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 07:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 07:40:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ecbac39a-2fed-4ef4-ba32-e93b46b5b558","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 07:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 07:45:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a915c64f-4654-40d5-a88a-7b3c578f8b06","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 07:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 07:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 07:50:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d5a42f62-70d3-4003-8ec6-8722f5d8e8fa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 07:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 07:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 07:55:00","totalConnections":1}
{"durationMs":1.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"998fdd41-d0f9-47b8-9eb0-6e5b91af0c8c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 07:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 07:59:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-08-28T05:00:00.894Z","service":"cbc-sms","timestamp":"2026-08-28 08:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:00:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-08-28 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-08-28 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-08-28 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-08-28 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 08:00:00","totalConnections":1}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-08-28 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-08-28 08:00:00"}
{"durationMs":1.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"edfd7317-5a02-41b4-867e-889f1cc6f054","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 08:05:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce0157e5-5ae3-4e40-bf52-b7e2a7386e80","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 08:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 08:10:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58011855-83c5-4b32-864e-b388644d2edf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 08:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 08:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 08:15:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"962a2341-953c-4000-84f7-cedf3e6a50c2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 08:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 08:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 08:20:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84cf2df3-64d7-4dca-8f63-ce79c9b3eeb8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 08:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 08:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:25:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2dbb1da0-8897-4cf9-aea1-91b2c913e70f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 08:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 08:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 08:30:00","totalConnections":1}
{"durationMs":2.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1acdf497-b6f4-4d8f-8c9b-2317328b4273","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 08:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 08:35:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dc5ad463-19d4-4fb7-a6df-a9eca2cb8a3e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 08:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 08:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 08:40:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3bf44a3d-e621-436a-8435-fdb329a9c288","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 08:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 08:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 08:45:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"29d7ea71-54f9-451e-9617-62868998f102","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 08:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 08:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 08:50:00","totalConnections":1}
{"durationMs":2.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2a4633e8-c015-447e-8a8f-53ff8139e01c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 08:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 08:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 08:55:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"10b4c6ce-1516-4352-8c0a-e65fee79daca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 08:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 09:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 09:00:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"89555ba4-e32b-419a-b66f-f2a2e4518dad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 09:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 09:05:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b67baba9-e100-4ce2-95d6-b3d71a2eed79","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 09:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:07:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 09:10:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2571046e-3672-4feb-b69b-8282b6902c56","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 09:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 09:15:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"16194d93-74d6-46da-9115-d4e73ced5458","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 09:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 09:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 09:20:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"901d50e7-6dac-4ea7-a750-eb8c82446936","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 09:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 09:25:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cda8e467-9723-4b7a-8973-9c89ebdf12ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 09:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:29:00"}
{"level":"info","message":"[CRON] Attendance alert started","service":"cbc-sms","timestamp":"2026-08-28 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-08-28 09:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 09:30:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c19c4dba-4d20-4c46-becd-3e0e1d28d777","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 09:35:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"167d453e-18b0-4ea9-8631-4119855d992f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 09:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 09:40:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5a885b54-8ebb-4384-a5ad-015637b78887","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 09:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 09:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 09:45:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"377ab60c-416d-4bd3-849f-5fae9c1e41f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 09:45:02","userId":null}
{"durationMs":2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0b15b37-b8e9-40e2-b046-12ba37888327","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 09:45:32","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 09:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 09:50:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2ef6b742-6539-443a-8ce5-642b31645d58","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 09:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 09:55:00","totalConnections":1}
{"durationMs":1.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bfdb1399-5a91-4864-b6f5-9da20138795e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 09:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 09:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 10:00:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7c46469-d64c-40e2-8021-a40c17c95aeb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 10:05:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"83993120-ce9b-4e36-8726-ef92fdd7650f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 10:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 10:10:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"558ac289-fc20-4cc7-8d8f-f7372a6f062a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 10:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 10:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 10:15:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"74d707b9-cb4c-40f5-9b42-46433d843a97","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 10:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 10:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 10:20:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3453bc9c-46a8-4b39-80fa-08d50b37db06","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 10:25:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"117ff2e4-2c18-4afa-8952-40db9a53de7f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 10:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 10:30:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eca77a8d-d654-494f-b738-7e401650fbdd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 10:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 10:35:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b81de103-f2f9-4813-9dcb-1afc8e31385d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 10:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:37:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d1c9cfe1-7bc5-4dbe-a641-ad69d72dc885","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 10:37:05","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:39:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8463c516-81ac-4e96-b3bb-dfb8084f372f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 10:39:30","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 10:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 10:40:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"32ef9cce-4af3-4a50-8c28-f7be70649003","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 10:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 10:45:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6209ad95-3628-4c41-8616-44a14b0e11f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 10:50:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0c9b77a0-c90b-4a86-8a1b-4bfe30a2a442","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 10:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 10:55:00","totalConnections":1}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72612eac-7aa4-4c91-8176-4aa83b38b7eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 10:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 10:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 11:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 11:00:00","totalConnections":1}
{"durationMs":1.66,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c3451ef0-7f78-4dde-b956-03dcc99a3a16","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 11:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 11:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 11:05:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cfb78b84-221b-4d46-883b-a523504844d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 11:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 11:10:00","totalConnections":1}
{"durationMs":1.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b4500f79-ae0b-4f31-ae6a-2e1c5765c16b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 11:15:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a4818d3a-c9d0-41d8-a979-99baac60a793","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 11:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 11:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 11:20:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c1b9a431-6bfa-43f3-a6fb-cab8fc1e380b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 11:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 11:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 11:25:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c93f0b7-0012-4ebe-a360-5fd43fa52902","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 11:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 11:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 11:30:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6669de00-8735-4d07-9218-3f0e10e889b3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 11:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 11:35:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c0cc58a4-11c8-479e-9f98-19b4180a9f64","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 11:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 11:40:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"13797a56-37b6-45f5-9690-7263800363ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 11:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 11:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 11:45:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4903498d-a573-4e9e-972c-b7f991ef6682","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 11:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 11:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 11:50:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2ea76212-428b-40f1-bcd5-620fe5e7fa90","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 11:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 11:55:00","totalConnections":1}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"03449883-14bb-4013-a508-6431f38fa5cf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 11:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 11:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 12:00:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b3182a9e-cc05-49a4-85c4-d50ff46942d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 12:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 12:05:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6c2b035f-62a7-4e99-be1c-00656f77535c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 12:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 12:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 12:10:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a48548ef-12fb-4d4e-b9af-56f86313e958","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 12:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:12:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"76ee77dd-e12a-4ec3-b2f4-6a0e88d6b47f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 12:12:08","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 12:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 12:15:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4b801eb-45d2-47d2-b6be-e4a7ea8f3ed8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 12:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 12:20:00","totalConnections":1}
{"durationMs":1.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0e0b62bc-0e19-4772-8d59-183bc944010e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 12:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 12:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 12:25:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"814d3804-48ce-4464-8ca2-1d5d05b72094","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 12:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 12:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 12:30:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1a61d6b9-f51f-4cbf-8bd3-9bca37f243f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 12:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 12:35:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bf203414-9089-49c0-89f4-8547f674cf67","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 12:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:36:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1069307a-f7be-413a-8949-8588cc454114","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 12:36:59","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:37:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 12:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 12:40:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a306a5b4-c7c9-41b0-9d5a-7a103de2efb2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 12:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 12:45:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d497a7e9-c9a5-4099-8915-6c5a4fb1fa44","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 12:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 12:50:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"67c57520-b9ef-4a67-908e-70b92ef33e52","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 12:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 12:55:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1fd403fb-7343-444b-9c0a-8e1189aca382","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 12:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 13:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 13:00:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ddebdb70-a14a-4fb6-a0ba-88502b761f21","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 13:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 13:05:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea83a568-b40a-4bca-b176-e1d095f18567","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 13:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 13:10:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7d21b584-932c-43c0-a3f1-da2a4a8d320c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 13:15:00","totalConnections":1}
{"durationMs":2.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a17359d6-d16d-41b9-8aef-cd09e23846a2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 13:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 13:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 13:20:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5db3788f-0547-436a-8d6c-74d704adcdd6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 13:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 13:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 13:25:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"89eb5a5b-2914-4806-838b-1b980685ca55","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 13:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 13:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 13:30:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05900c19-a238-4736-b8cc-209ae40f8e48","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 13:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 13:35:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b8ac2c9-91c5-4f20-a10c-f610257def49","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 13:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 13:40:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e6a64870-c5ad-42d2-b153-464af58e833d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 13:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 13:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 13:45:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d1330cfc-be80-4bb5-898a-5fc2b54d8125","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 13:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 13:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 13:50:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58497b6b-4ed8-4e14-9c69-76a68325931b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 13:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 13:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 13:55:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3e6242ba-1667-499c-a177-d9552136ad56","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 13:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 13:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 14:00:00","totalConnections":1}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"08913475-2feb-40e8-93e2-c142fe1e5c77","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 14:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 14:05:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"67d878c8-fe3c-4296-a143-fd1543de95b6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 14:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 14:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 14:10:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f4e2027c-bc9b-47ce-b169-c212cddc9d85","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 14:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 14:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 14:15:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8c5ead71-bfe0-4f7a-a6df-c837897845ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 14:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 14:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 14:20:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb4a9434-5c10-4b6a-989a-c4ad674da9f5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 14:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 14:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 14:25:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dddb27eb-61b3-4259-a173-36d83c151c79","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 14:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 14:30:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ee2a4ed2-56fb-4e63-ae8f-b27b48653aaf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 14:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 14:35:00","totalConnections":1}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"416b0e3c-a105-41c7-9244-63081c197e0c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 14:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 14:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 14:40:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6233ff67-c14d-4690-8a44-23d11c844f47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 14:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 14:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 14:45:00","totalConnections":1}
{"durationMs":1.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dad22413-bda6-452f-a542-b972966da958","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 14:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 14:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 14:50:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"db4cb279-f8fb-402e-824d-bdf3f0662cd6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 14:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 14:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 14:55:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3cd8aad5-f966-4aff-8441-c173df2be3c1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 14:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 14:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 15:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 15:00:00","totalConnections":1}
{"durationMs":1.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4fb7060d-e9ac-43ec-a504-8d6c040ed1af","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 15:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 15:05:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ec3003a1-9438-4d6d-b44d-26724ba76c74","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 15:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 15:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 15:10:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"44814309-05ec-4cec-ac37-ba430f1e1ab5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 15:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 15:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 15:15:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"804177ac-1918-494b-8458-96b0233e0876","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 15:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 15:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 15:20:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e817da61-5b35-4f6e-b9b3-b5ebb7c182f5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 15:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 15:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 15:25:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2659113b-b176-4e83-ba40-1b8aaac54e78","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 15:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 15:30:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"67372c7a-5347-420f-a734-08e7d8ba9b0c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 15:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 15:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 15:35:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4281284f-6a33-44bc-aa58-58a884381aca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 15:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 15:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 15:40:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d6d8e0f7-05b0-449b-bfd3-37c710490dca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 15:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 15:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 15:45:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c8fb078d-f0e0-4090-bde0-e6ac14d20350","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 15:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 15:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 15:50:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f660e200-ab76-4408-b868-321bf1d237de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 15:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 15:55:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d86e0cd4-a315-49e2-ad2d-4296862c4dc7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 15:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 15:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 16:00:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"15d4f18a-42fd-4d65-aabe-f0f4ce2d0cac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 16:05:00","totalConnections":1}
{"durationMs":1.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"54c3f1aa-2426-4ea9-9b78-7e7300905b7b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 16:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 16:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 16:10:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b3795904-d30e-4334-839a-c0e0d73c2c6b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 16:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 16:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 16:15:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9e1618a4-d486-48d2-9914-c8acd3e252fa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 16:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 16:20:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"715132e0-d220-4af2-bc14-972c7c8e13d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 16:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 16:25:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6487d16-ecfd-48ac-a6ac-dbf73fc021a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 16:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 16:30:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"45385c79-4822-419a-bf06-646ad75610c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 16:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 16:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 16:35:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dfbddbf9-e111-45fb-a7a3-6be2af092ed6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 16:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 16:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 16:40:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da470b2e-fe0d-4b51-bea1-2001c5d58f50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 16:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 16:45:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9bdf6100-b3a9-4e5c-964f-24ece1c181b7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 16:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 16:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 16:50:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f971760e-0ba2-4ed4-b4c7-cb0485054447","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 16:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 16:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 16:55:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8956f1d7-f062-4042-be93-5acb10aed5e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 16:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 16:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 17:00:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5545ac6c-a7f1-4664-a134-c2198c6f597e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 17:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 17:05:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8f3201c-22b8-4f6e-a2f6-47fad3b1072e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 17:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 17:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 17:10:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4a326101-47bc-4466-9875-70e670c4b21e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 17:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 17:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 17:15:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3e101968-56fc-41a7-bd56-5a416886744b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 17:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 17:20:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"55b21b9f-6cd1-48f4-b1f6-c22185d69596","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 17:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 17:25:00","totalConnections":1}
{"durationMs":6.66,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5cd36da1-e9ad-44f4-aca7-d0c4de271800","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 17:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 17:30:00","totalConnections":1}
{"durationMs":3.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"06ad805c-353b-4e9f-92d9-6e88a64f882d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 17:30:02","userId":null}
{"durationMs":2.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f524cfad-2bab-49db-82eb-c64729852165","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 17:30:56","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 17:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 17:35:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2eaaf0a2-77e5-48f5-8cbb-b35cfaac877b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 17:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 17:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 17:40:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"23139ca8-ce2c-4d33-9939-b3696dd3a3e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 17:45:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"40cc3ad1-1843-4d18-9ddd-de063a794565","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 17:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:47:00"}
{"durationMs":1.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46025b38-f2e0-4b2a-98e5-2678bbe514c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 17:47:23","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 17:50:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd33b4f5-ee8f-4a42-abf4-d2ca3e0ce1db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 17:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:54:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 17:55:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"14df3df4-24ea-4243-8cab-c0a1f5e297ea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 17:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 18:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 18:00:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04276b4e-7aec-4ebb-8e88-d25ffd48b8f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 18:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 18:05:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9320a574-81bf-4298-94f6-7be8eff169b4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 18:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 18:10:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f4184fe-00f1-47de-b111-590c5e2fd612","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 18:15:00","totalConnections":1}
{"durationMs":1.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1bf1d725-9752-463a-8274-4a93c7b33bc7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 18:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 18:20:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a1625643-7e30-42d9-8a0a-b0913568873d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 18:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 18:25:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6a38f48-1a26-4da5-afdc-069e6faf61db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 18:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 18:30:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0fc4078-6001-47a8-801f-9aa841bbc2d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:34:00"}
{"durationMs":1.62,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0cd2c35b-be8c-4b02-927b-17ec894de0e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:34:49","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 18:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 18:35:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a64a6651-9121-4dc1-b0be-152a5ba80dbb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:35:02","userId":null}
{"durationMs":2.16,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"111df4c9-54c8-4aa4-952d-57326781e746","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:35:03","userId":null}
{"durationMs":1.17,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"af7f4a25-cc3e-469d-ba71-8a49a5e5dbfe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:35:45","userId":null}
{"durationMs":1.73,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad30f98c-907e-478e-bc88-0d43d18c09a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:35:56","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:36:00"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":14,"event":"UI_CLICK","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-28 18:36:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.49,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3106cf51-5547-44c9-9bd0-80e7d83b9eb7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:10","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":55,"event":"UI_CLICK","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-28 18:36:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.97,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1979a70b-9bf9-4f6d-ada4-5b38e06a50be","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:12","userId":null}
{"durationMs":1656.64,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"0bfcab12-75c8-4769-9fc7-1a59d434c864","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:13","userId":null}
{"durationMs":146.56,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"7931935a-2ec7-430b-8b33-8c9c46c4a6c7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":533.61,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"9eccacee-8fca-46e1-9034-b4b1b2cc682a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":431.93,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"e7ad2f6e-a9ca-4601-9ac5-63335b741a14","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":506.44,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"220a7089-cc39-457a-9960-0e6da0619d93","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":532.73,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"d60d9921-c622-439e-8ca0-2b501632aa3b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":549.57,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"b4020760-a2e0-4c34-b8cc-b156af44ef72","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":2011.4,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":664.6,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":34.39,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5ccf30c3-e4ca-4419-8613-dfd15cea9657","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":484.55,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2e272c15-2991-470c-9aea-b4c48b6daf69","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":417.39,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"096bf1cb-d7a1-435e-bc5d-53140a5f2876","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":140.91,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"2bc5be33-088c-41e6-99b4-58d03b749152","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":749.34,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"31afe43b-8d34-4325-b278-753cd415f230","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":90.34,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"b3f848b8-d3df-4a9e-b48c-8cd77ad2b3d1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":339.39,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"4280110f-30f3-4286-9fb0-3ba3895c61d0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":348.87,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"14a8da62-1f92-43a9-9e96-c9957f44bffc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":368.81,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"7d9ab476-0235-46db-9af4-c83feb45ea7f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":353.94,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"98f3ab47-3c97-452b-afca-1914607ee3dd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":371.91,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"e9441d4f-efcb-4df2-91f4-3406a48e1b23","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":43.53,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"87e6cfae-3c62-43f9-bf9f-0e3887dbb9c6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":131.2,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"f7a888a1-6a08-40d1-a801-2bd72574b867","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1494.9,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1501,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":1505.4,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1508.6,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1551.8,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1555.3,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1573.3,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1575,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":1711.1,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.53,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ce3bd375-2000-425a-bd95-6855895ba879","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1044.9,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1222.4,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1243.7,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1245.4,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1247.4,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1249.5,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1857.4,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1860.9,"event":"API_RESPONSE","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.73,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8688ad33-864c-4019-957c-0bf524ccf34a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":88,"event":"UI_CLICK","ip":"154.159.237.83","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-28 18:36:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.99,"ip":"154.159.237.83","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dffd2374-6c5e-4184-930a-e42ca047c33b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:36:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 18:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 18:40:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b2957ef4-fd5e-4cd7-971f-1e8c4cedf928","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:42:00"}
{"durationMs":1.68,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de8fb701-13b2-446e-8b9f-e33ea5671eb4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:42:58","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 18:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 18:45:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"48ebe420-6aa1-49e7-9b00-49156958933a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 18:50:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7141a00e-1660-43e9-b5eb-61115582e1f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 18:55:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"28bf99d6-22e2-4e72-9303-5efbd6cf141d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 18:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 19:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 19:00:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d26a0bd4-8c98-474b-b9e6-f5dbacd5998e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 19:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 19:05:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"97ac4b51-1b86-4158-aafb-6880463e41cf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 19:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 19:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 19:10:00","totalConnections":1}
{"durationMs":1.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"61a07fab-00f5-466e-ab00-fd16380b8a45","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 19:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 19:15:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 19:15:01","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"71c0bfb5-22b9-47df-acf5-d9d13895f99c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 19:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 19:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 19:20:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7f6dd16f-4509-490d-a9a3-db0e79c6e85e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 19:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 19:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 19:25:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa84daf6-ddbf-4043-b76f-d7b2d7f7a023","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 19:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 19:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 19:30:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"14fdaec9-b06e-4ce0-8f69-3756dbc2c6f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 19:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 19:35:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7c8ed35-ebc6-4ed7-8f7d-65b188e595b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 19:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 19:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 19:40:00","totalConnections":1}
{"durationMs":1.7,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8858e6ee-4d50-466c-9e2e-a843a7e9d7ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 19:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 19:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 19:45:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bf975291-f778-48f1-947b-5475eb34d6d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 19:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:49:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1e935ebd-1a66-45be-931b-4c9bcc4fa6ef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 19:49:29","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 19:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 19:50:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad177ebd-bccc-45b3-a853-02451d30513b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 19:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:52:00"}
{"durationMs":7.72,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/portal/config?tenant=drewgallow-sxsgnl","requestId":"91f09244-f43e-463a-b928-c4f7a591d92a","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-28 19:52:22","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 19:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 19:55:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ef06aeb-ecbb-4d8b-be87-81f138660bc2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 19:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 19:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 20:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 20:00:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0003be3b-4b68-45e4-a98d-66de64f8d75a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 20:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 20:05:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"545954b9-3205-4ca8-a164-296417b0cace","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 20:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 20:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 20:10:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"62eb912b-a1f9-4f9b-9d89-d80042f048a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 20:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:14:00"}
{"durationMs":5.02,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/provision/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb3V0ZXJJZCI6NDIsInRlbmFudElkIjo2LCJ0ZW5hbnRDb2RlIjoiZHJld2dhbGxvdy1zeHNnbmwiLCJyYWRpdXNTZWNyZXQiOiJhMjVmZDkyYjBiNzliMTkyYWE3YWZlMDhkN2JjMzVlMWM1ZmNhNTQzNWY2MGMyMDIiLCJzc2lkIjoiUW9ubmVjdFdpRmkiLCJyb3V0ZXJOYW1lIjoiTWlrcm90aWsxIiwiaWF0IjoxNzg3OTM3Mjc1LCJleHAiOjE3ODc5NDQ0NzV9.1vOFkuzthl61eFCZm3BOHh24YX-FXwgz6ZfzCW044m0","requestId":"8e17604e-bd88-4c9d-9cf8-d2891ecde9e0","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-28 20:14:53","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 20:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 20:15:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"22f775ee-9d78-435b-9f49-48e487c966ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 20:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 20:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 20:20:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7363371b-73c7-435c-a2ee-9ad11695a5c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 20:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 20:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 20:25:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8b0de2e5-9697-4cc3-9c7b-a647f7d82a01","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 20:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:28:00"}
{"durationMs":1.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3762607f-1dc5-48c0-bfb4-a01d78aeb326","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 20:28:40","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 20:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 20:30:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d65a999f-1365-4d01-9d8c-44e546476d90","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 20:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 20:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 20:35:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7ce5875-e1d3-4173-acdc-5bbcbd9ec6c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 20:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 20:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 20:40:00","totalConnections":1}
{"durationMs":2.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3df8f955-350c-4d95-86d9-8afa37e8882c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 20:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 20:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 20:45:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70d7993b-9dbc-4f22-873a-011e6f432800","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 20:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 20:50:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72d77483-9dd3-43bf-a1cc-a8e4f8da9fe3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 20:50:02","userId":null}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"01892faf-6192-4c70-ae47-dfee9ce63998","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 20:50:43","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 20:55:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c3cba6a5-8d4b-4cee-93c9-8704dab687f0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 20:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 20:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 21:00:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7733213e-d9e8-43ef-923f-f8bd300a5a09","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 21:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 21:05:00","totalConnections":1}
{"durationMs":1.66,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ab86132-7fdc-4823-86ab-d7e83a34604b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 21:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 21:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 21:10:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b320daa-55f9-4a83-bae9-f782d8069cda","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 21:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:13:00"}
{"durationMs":1.68,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cc20df33-660e-4ae1-8364-1994bbe72155","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 21:13:31","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 21:15:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b515034b-c2d5-4710-89ca-8f0dae6b22e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 21:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 21:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 21:20:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b93ea3e3-3800-4ab6-ab8b-1c0c8222f5c3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 21:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 21:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 21:25:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ba516f0-423a-4f70-8043-1c688360784a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 21:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 21:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 21:30:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd6ff7da-0003-4830-9864-fff5a1787d8f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 21:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 21:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 21:35:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0c90a808-e1f5-43c9-a764-9a3bdb99c6c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 21:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 21:40:00","totalConnections":1}
{"durationMs":1.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"13017bf3-b94c-402c-8e90-635cfc8254cf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 21:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 21:45:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"21819eb0-8064-4cf0-a214-1976c4ebb0f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 21:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 21:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 21:50:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b17e141-a659-4eae-913d-ac08107e50f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 21:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:54:00"}
{"durationMs":1.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ae2c55c-a952-4f97-9c5f-c5c787403d79","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 21:54:33","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 21:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 21:55:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ebc1069b-fbe4-4954-a039-2c5bcab38104","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 21:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 21:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 22:00:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"616347ff-2d3c-46bd-a919-b7be8f218157","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 22:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 22:05:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ce5050d-5a67-420a-8354-6320a80dabc5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 22:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 22:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 22:10:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bccfae6e-5896-4240-8503-410146df3319","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 22:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 22:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 22:15:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b10013d5-7825-4743-87fb-7ebc7e632e03","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 22:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 22:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 22:20:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7fed39c8-21b7-4c7d-ae98-4ab2f0a417a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 22:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 22:25:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ef723f4-42bc-49ee-b635-d5a0fa7a6592","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 22:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:27:00"}
{"durationMs":1.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"60f56051-3466-4f32-8712-b6119d30ed2e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 22:27:06","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 22:30:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bdec43f6-6c25-416c-a01e-370ff36e8223","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 22:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 22:35:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d7b3e84-5a14-4cf2-b3ab-87c1469308f5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 22:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 22:40:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9197c50f-a2bb-4e49-9c9e-b3abe289188b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 22:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:44:00"}
{"durationMs":1.71,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ddcffa65-95db-46e5-b46e-9021190ed543","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 22:44:12","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 22:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 22:45:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3498605a-7507-43b2-8720-b6292af597f6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 22:45:02","userId":null}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"732f6a81-c8e8-4087-81a4-91ef91ea8c30","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 22:45:51","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 22:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 22:50:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24fe4cdc-5190-4810-8263-62cc6707c038","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 22:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 22:55:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92bf3d70-ff7d-4663-98cb-37cfd0612161","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 22:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 22:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 23:00:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9b45db71-e015-415d-90da-7d117e789d8a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 23:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:01:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9fb60593-c655-42cb-9d03-4873c46f610d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 23:01:58","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 23:05:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2045ce2e-1788-493c-96c3-41399d564932","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 23:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 23:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 23:10:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"45816e19-29aa-42ca-9450-6b2fe6a08f78","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 23:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 23:15:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"312884a6-f9f6-42d8-ac42-3aa7f360a013","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 23:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 23:20:00","totalConnections":1}
{"durationMs":1.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5287abda-0edc-44a2-8585-c9ccc1116433","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 23:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 23:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 23:25:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"65dcc5fb-fe75-4263-a84a-feba41d77d34","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 23:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:26:00"}
{"durationMs":1.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cfc66ef1-99dd-4a23-9ecf-0adaac7cd25c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 23:26:19","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 23:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 23:30:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9339b70-8c41-44e1-8b15-2471985052ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 23:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 23:35:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"61fa847e-20d3-4762-89f5-dd19212ad601","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 23:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 23:40:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8453ba9b-d0a8-46e8-ac3b-6d3f233125c5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 23:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 23:45:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"13fa06ad-76a9-4264-bc69-ed5a921222c3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 23:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:47:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d1c6443-7c9c-4a8b-81b8-3bbbd64b65fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 23:47:03","userId":null}
{"durationMs":6.67,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/portal/config?tenant=MikroTik","requestId":"b704d68a-0d83-46bd-9d32-f11edbf0471b","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-28 23:47:35","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 23:50:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"11c62f97-e6eb-404a-8b83-73ba3b5fad6d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 23:50:02","userId":null}
{"durationMs":1.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8863ef8d-0297-4e0f-b66c-229ac7e6723c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 23:50:59","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-28 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-28 23:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-28 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-28 23:55:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a9eb775-93ed-4fb2-a388-317942b5ae57","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-28 23:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:56:00"}
{"durationMs":2.8,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/portal/config?tenant=MikroTik","requestId":"4d067a63-0e2f-41f3-8a88-6cbd2751c681","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-28 23:56:52","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:57:00"}
{"durationMs":1.85,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/portal/config?tenant=MikroTik","requestId":"cbdc908f-c4a8-491c-85d7-012bbb251f33","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-28 23:57:06","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-28 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 00:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 00:00:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9296f845-f94c-4f07-a0b6-9ec74a2a3ba9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 00:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 00:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 00:05:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8094b3ab-6dab-4cba-af62-eff526229b1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 00:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 00:10:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4e8208d4-4da3-4952-962f-5f4157e8de9b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 00:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 00:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 00:15:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7cb6ceb9-6aec-4629-a128-724b402df30b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 00:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 00:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 00:20:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"78f35daa-b45f-443e-b86b-d315fefc9848","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 00:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:24:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"396e63ba-e20d-4582-9b88-d63c4a57c53b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 00:24:38","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 00:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 00:25:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9470093d-c180-43ce-9774-c972b21cb098","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 00:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 00:30:00","totalConnections":1}
{"durationMs":1.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"786eda35-61f2-4af3-b952-2e64d4ebefb4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 00:35:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"73efec1b-92ae-46c4-8bc7-bbef14d04e2a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 00:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 00:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 00:40:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1a4cb5a-4b15-4ac4-8dbe-e51cbd388702","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 00:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 00:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 00:45:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1a3cac54-8dcb-45bf-acaf-3f9a06eb825b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 00:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 00:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 00:50:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"76396d78-da12-44a3-b568-0fd8dba28aa1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 00:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 00:55:00","totalConnections":1}
{"durationMs":1.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"374d0f24-4679-4dcd-af5d-31a024c52322","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 00:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:57:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3a15cd5-0181-4670-b464-5041ae5f207a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 00:57:17","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 01:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 01:00:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4da15916-5def-4968-98c0-c97e80f0d3c1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 01:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 01:05:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"30e1aca0-663d-4636-9d46-1708c7d55566","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 01:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 01:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 01:10:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"32d6da8b-ec54-4406-8ed7-d93acb783e68","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 01:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:13:00"}
{"durationMs":8.43,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/portal/config?tenant=MikroTik","requestId":"7bbe0af5-40e6-4c4d-a984-916da74e6387","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-29 01:13:22","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 01:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 01:15:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"82b8ff67-764a-4123-8e4a-8c4de36739e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 01:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 01:20:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"76b0c66e-16b6-49c8-81f3-7f6380b255ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 01:20:01","userId":null}
{"durationMs":2.62,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f537a088-dbc5-4477-9966-79cb08299647","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 01:20:08","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:21:00"}
{"durationMs":1.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c1a6d65c-2110-4102-870b-2d2389d46eae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 01:21:16","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 01:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 01:25:00","totalConnections":1}
{"durationMs":1.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f94c087c-a8ea-432d-83f6-0ff3eb9642f6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 01:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:26:00"}
{"durationMs":1.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dee302b3-89bc-400f-bd39-e087ed830adf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 01:26:52","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 01:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 01:30:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ca20b7dd-402a-4f9c-8c2c-76ba3fb904e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 01:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 01:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 01:35:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1e06ad49-b271-4bb8-97e8-0d8e4db6c702","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 01:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 01:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 01:40:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a704a8af-db05-4449-b65b-e9adb175b750","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 01:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 01:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 01:45:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"55d387d0-78ba-4abb-b928-f995a47021c2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 01:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:49:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"65e93f7e-aa9c-410d-a556-bedbafa81a2b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 01:49:13","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 01:50:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"91f4a720-ec08-4b35-8baa-6624a1573fec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 01:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 01:55:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b2f5c28b-39f7-4602-bac8-3807a179e8fd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 01:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:58:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 02:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 02:00:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eb438188-88bc-44de-a480-e942a2221080","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 02:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 02:05:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b53259eb-3127-4ba9-9bcd-c0e889a2815a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 02:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 02:10:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ae7be08-a889-4ec8-9eea-4011d17c9fd8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 02:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 02:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 02:15:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"33f0912a-5756-41e2-9f82-8f929c797b22","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 02:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 02:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 02:20:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"360d1ca5-4ee8-4040-897b-6e77dc6b0d2c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 02:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 02:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 02:25:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"57e9f3a7-11e3-45fa-aa5c-65e8265e4013","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 02:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:28:00"}
{"durationMs":1.69,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"754a9374-bce9-442d-aab3-8fae7662a09a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 02:28:22","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 02:30:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c71d67f5-5b35-4713-af2d-9a6f60fce9ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 02:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 02:35:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"50abd453-535f-43a2-89ae-6126b4fe8d5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 02:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 02:40:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ea94917-5d76-485d-82b7-d037f264b15b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 02:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 02:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 02:45:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00382434-66a5-455e-86c5-48803e26666c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 02:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 02:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 02:50:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"856911a7-18c9-48a3-89c3-3996b8343ce2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 02:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 02:55:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"66a6191a-eae1-4637-b10e-9885e9661b1c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 02:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 03:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 03:00:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"44f53df6-dcd3-4cce-9713-5f4930749342","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 03:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 03:05:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"90af7fb4-a77c-4a0c-bb74-87a9e4397630","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 03:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 03:10:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eed9d45b-2d03-4d79-9f34-c723099b86e3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 03:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 03:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 03:15:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7fd40f4-59c5-4e32-9f26-d310655e8951","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 03:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 03:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 03:20:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e3df864b-c490-40ec-8719-1c47b840d0d0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 03:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 03:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 03:25:00","totalConnections":1}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"06893d5c-571b-44b4-8159-0c030c3ffa07","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 03:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:29:00"}
{"durationMs":1.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fba49a67-5667-4b27-b086-4e6133942314","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 03:29:24","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 03:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 03:30:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8716b8a3-a5d7-4266-8398-ad00dba15ef3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 03:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:31:00"}
{"durationMs":1.67,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cb6baad5-4efa-4534-940d-023c51c2fa15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 03:31:17","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 03:35:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"55864bf0-21f1-45c5-9d6e-272f59c02464","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 03:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 03:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 03:40:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ebfccc1f-55ad-4fa3-bb45-81885c2486df","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 03:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 03:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 03:45:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e67be8b8-c1e9-4bd7-b388-e0f23fb84bcc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 03:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 03:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 03:50:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"63acd2ac-f702-4f3a-bedb-fcb0fcaece34","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 03:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:53:00"}
{"durationMs":1.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e5942655-0c48-4691-8d12-dbf7a137e05a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 03:53:30","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 03:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 03:55:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04cd2e17-2a27-4742-bb06-365d6eb82113","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 03:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 04:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 04:00:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5f5488f2-0282-4259-8c77-deafe082b2f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 04:05:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df949f77-33c0-4203-85b8-91cb15b95e9b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 04:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 04:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 04:10:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1c482e26-5119-4747-8424-120a10176efb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 04:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 04:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 04:15:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f23d8d89-9c44-4f15-aa0f-b801ffe9cc87","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 04:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:19:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"11d89700-effa-42b7-a4db-28953220e5f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 04:19:59","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 04:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 04:20:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b293157f-d98a-4620-9d0f-52966ce73640","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 04:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 04:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 04:25:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"460f2da8-899d-4043-a565-97969d62f38a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 04:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 04:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 04:30:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8bc1b2ae-c170-4853-ae03-1f95d93b24e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 04:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 04:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 04:35:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e6f2aaa3-3378-46f3-9821-7d3080afbc6e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 04:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 04:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 04:40:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eafaa963-4d42-4131-9784-71e149dcfd36","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 04:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 04:45:00","totalConnections":1}
{"durationMs":1.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"502a4c6e-bbe4-43d3-b347-104610f4db11","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 04:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 04:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 04:50:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"64a501fb-6989-43ea-9f40-8e9a173ad766","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 04:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 04:55:00","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cc138ae9-4717-435d-9352-f8a391aa5a7e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 04:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 05:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 05:00:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c042043a-88ec-46ef-bcc9-2853eacf4475","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 05:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 05:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 05:05:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c2c6f55e-ffd4-4583-8178-1b428a523a13","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 05:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 05:10:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8be94246-c1e7-4fb8-b027-e1c685bf31ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 05:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 05:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 05:15:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"290d0587-8cf2-4c74-aa11-741ba10f8c5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 05:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 05:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 05:20:00","totalConnections":1}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"522b7ddc-69d8-461d-ba03-a24643de8901","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 05:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 05:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 05:25:00","totalConnections":1}
{"durationMs":1.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87080a92-2799-466e-b5b4-187f9a70f2db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 05:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 05:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 05:30:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e940c8f7-d37f-4316-97b6-c723a35bc405","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 05:35:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e476ffcb-5a6f-4744-9bdc-94e864737838","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 05:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 05:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 05:40:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4b237d31-19ec-4119-ab6c-453c9c633c56","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 05:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 05:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 05:45:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6602d433-29eb-4ed5-b8c8-10096b14b119","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 05:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 05:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 05:50:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b1e8cde3-7c31-4410-82a4-7f414c342505","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 05:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 05:55:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1ff7c26b-cb3a-45f2-ade1-c320ae39f623","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 05:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 05:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 06:00:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58f56e9f-4bd2-4c09-ae81-5b0e9593e78e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 06:05:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d4f9080-4735-4046-9115-16910d8854db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 06:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 06:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 06:10:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"02c7a351-85b0-4c58-aa2a-6fd702acc52d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 06:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 06:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 06:15:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8185069b-7773-4df4-ac03-adc8e06d4f59","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 06:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 06:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 06:20:00","totalConnections":1}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8fe17e09-f1f0-4870-b6eb-3af59158922b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 06:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 06:25:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2d66e17d-aff2-4b76-b6e0-ebac353a6bb4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 06:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 06:30:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b39ef3a6-e437-400f-a0dd-6d132258fc7d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 06:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 06:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 06:35:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1437447c-a688-478e-a99c-c8e3cf7f64ec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 06:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 06:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 06:40:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fdad04a2-ab6c-4194-947b-d8addaa04e1d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 06:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 06:45:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"53260d59-c0f5-4645-bc1e-3da4431f6ff1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 06:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 06:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:50:00"}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bf14a7cd-600c-4652-aa22-3617c574d5d9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 06:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 06:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 06:55:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f68bd14-c1a4-4dd8-ae73-29748baf5c13","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 06:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 07:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 07:00:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce60cf0b-9401-4782-b96c-5dc0dfcc4612","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 07:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 07:05:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"149d6700-5abd-43be-b98f-18e9d9243fd9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 07:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 07:10:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de26bb49-a819-4fa5-8891-118c2d58ed1b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 07:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 07:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 07:15:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b305a36-c59d-494a-8f1d-4b55bcd2418b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 07:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 07:20:00","totalConnections":1}
{"durationMs":1.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8c2a6347-7629-49a6-9473-1d511cf8517e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 07:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 07:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 07:25:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5496290f-2262-4f37-9a14-0a39bfa31754","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 07:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 07:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 07:30:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0b9881f5-b9b6-449f-a9f2-ec5c3043bc85","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 07:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 07:35:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8628505b-07a6-4852-a722-759b11c4b0f5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 07:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 07:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 07:40:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"339728d8-78bc-4e36-a6fa-eeebc94b9bfd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 07:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 07:45:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"64e2fcff-6195-4d3a-947d-969051cb48fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 07:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 07:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 07:50:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7bfde82a-c548-463c-994a-47aa1b02af1c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 07:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 07:55:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c362ef98-17a4-412e-905a-3a65e28f0954","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 07:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 07:59:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-08-29T05:00:00.133Z","service":"cbc-sms","timestamp":"2026-08-29 08:00:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-08-29 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-08-29 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 08:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 08:00:00","totalConnections":1}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-08-29 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-08-29 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-08-29 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-08-29 08:00:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"55d840fc-fd2c-47ad-9fd2-65dab3ca6ce6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 08:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 08:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 08:05:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ef4ad473-fd0f-416b-a034-7fccc4f82a26","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 08:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 08:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 08:10:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1aafa5d0-2df8-4e0a-a836-925cfa9de6a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 08:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 08:15:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2afde018-3215-41bd-b6e6-1cbad89445ab","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 08:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 08:20:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ee858222-eb67-43d2-a835-d05bf2615a99","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 08:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 08:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 08:25:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"42d40570-5d81-43a3-af7b-b94231ff13e6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 08:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 08:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 08:30:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa230f81-1cab-474e-a1cb-2dc1f55c816a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 08:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 08:35:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ed3518e-9e04-45fe-939d-fc24d00e77ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 08:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 08:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 08:40:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ccce9318-22de-4783-8e2c-f0f148893e6b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 08:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 08:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 08:45:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"54973675-7bdc-4a86-a2a5-80fa05926fc4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 08:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 08:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 08:50:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cf22b3bf-6b23-4667-871f-671d6eaabf27","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 08:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 08:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 08:55:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98df539f-183c-4052-b3ce-2adc0cc9b3d1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 08:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 08:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 09:00:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"97bc1cb2-17dd-4202-9348-534d6841af73","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 09:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 09:05:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"be2b49cd-d1fc-4022-9ba0-e5b3b3cd7a39","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 09:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 09:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 09:10:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"10ae4477-f367-4233-8792-4ba8d45f86d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 09:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 09:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 09:15:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d53b7fe1-075e-4913-b505-b2ba58975116","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 09:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 09:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 09:20:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6747e2e2-02f4-4ea5-b00a-4e70f2e57e8b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:21:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 09:25:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"03b3a907-e745-46c9-9ee7-21158221d14e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 09:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 09:30:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0e90d70e-3051-4420-934e-11ecb53b5c1e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 09:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 09:35:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"012a2774-bc18-4bbc-acce-b79fd2568ca2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 09:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 09:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 09:40:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d64baba4-1ebf-4d02-9bf2-4bb6802627f0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 09:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 09:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 09:45:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7e40b2c-e128-4c79-923b-ed49a8a5c5a7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 09:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:46:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 09:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 09:50:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ca335d56-23d3-47b4-a6e7-96b263f166bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 09:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 09:55:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f3cd117-b81b-4bcd-ba9e-3574a0cc3c24","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 09:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 10:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 10:00:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c9f4677-69dd-45f1-b23f-00f961095d19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 10:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 10:05:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"31e59aa1-40d9-4cdb-a156-813482e913ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 10:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 10:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 10:10:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9381333-3a1b-41e2-ba35-7af9d914ce75","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 10:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 10:15:00","totalConnections":1}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5902a801-967d-423f-8b23-0e128018bec3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 10:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 10:20:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e485e77b-98c3-4ae8-a12b-5aa614e8bc8b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 10:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 10:25:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0316a09c-6f8a-47ce-8b82-1f595d2a830c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 10:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 10:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 10:30:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25edf25c-c604-487d-b557-2c9ba1aa0ca2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 10:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 10:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 10:35:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"69a14a65-8465-4921-8752-f9497b994bbd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 10:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 10:40:00","totalConnections":1}
{"durationMs":1.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"80d23b86-dc71-4b45-b323-5618a2789275","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 10:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 10:45:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ea707fe-b3bd-4d68-8497-c6ea8c32468c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 10:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 10:50:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f227a61e-0ad0-476c-9ffb-96bda75feb00","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 10:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 10:55:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"36f72219-0014-4fe2-ace5-059c7d192f26","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 10:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 10:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 11:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 11:00:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00b402f6-db6e-41f7-80c3-76da5ed6236e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 11:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 11:05:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"60dafc5a-1170-44a6-adfe-3962c87e93c1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 11:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 11:10:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b375d6c7-2c2c-4485-a18d-9257116ae4f8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 11:15:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"19a97a45-cd3c-4652-bdeb-30b34adc102a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 11:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 11:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 11:20:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a497c33-859a-40c9-ab6f-e8b0fb1ad93e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 11:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 11:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 11:25:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9a235dca-d030-4fe0-b988-fa0b475804dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 11:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 11:30:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1c59eba8-e363-4cf3-8c33-9d6ca76f26e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 11:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 11:35:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b01d243e-96b3-4e3d-9455-762d8a10a097","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 11:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 11:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 11:40:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb2b8818-f9c8-4313-b3c6-c585731ef5e4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 11:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 11:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 11:45:00","totalConnections":1}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ccb9ba7f-d376-4112-8ce9-27d0e4740056","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 11:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:46:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 11:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 11:50:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"60f64b10-1988-4ae4-8945-73ab02ffcec0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 11:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 11:55:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7c22c32b-2236-4331-b9ae-b125591339e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 11:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 12:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 12:00:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b94bd647-848c-4979-85d1-37ef74bd8761","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 12:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 12:05:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df9ac0c6-0ae9-42fd-8bf4-ab98b4749e45","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 12:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 12:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 12:10:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"57989e18-1404-4018-82fa-8238a73fe0f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 12:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 12:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 12:15:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"93fc3f86-ff2e-4170-9ede-303db6fd530b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 12:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 12:20:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"53323e58-7f75-40e1-b2c7-dfef818d513e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 12:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 12:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 12:25:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bfe154af-c498-4b3b-8f4d-2c6dfc8deeb6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 12:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 12:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 12:30:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ba6e5f9a-2fb1-450e-bf34-82202ee31997","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 12:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 12:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 12:35:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"253b396c-656f-4cbf-a7ba-52cf30ee7108","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 12:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 12:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 12:40:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e3212d4a-7788-46e6-96d2-17a677a18bb9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 12:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 12:45:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2951196a-42c5-4d73-8b30-fc2c9c2b13f5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 12:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 12:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 12:50:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1e528c0-7da8-418b-a28b-e92f05ceb2dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 12:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 12:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 12:55:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a1c5669b-4868-4c20-82e6-21f5e2cafdd8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 12:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 12:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 13:00:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3c16b262-7d30-4145-866e-8c3fd78414f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 13:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 13:05:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"550d4b31-c60a-4ab1-b900-0c01734300c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 13:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 13:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 13:10:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1a7c2d6-45aa-4edb-9726-fd1b31318e21","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 13:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 13:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 13:15:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ba28d77-656a-4de9-b44f-0e247986c302","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 13:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 13:20:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bc88dbdd-352c-4831-91d1-73ff8616042b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 13:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 13:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 13:25:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a80af3c-b460-4a7e-93e4-65f20e4798ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 13:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 13:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 13:30:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"35951882-bc6d-42d0-a1e8-d1aef43d284f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 13:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 13:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 13:35:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"edab8d23-4641-4bb9-b55e-346cd969ef50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 13:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 13:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 13:40:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f919a578-f34a-47cf-9919-77f452653322","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 13:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 13:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 13:45:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aab83912-9ddd-430b-8a3f-7201afbd56ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 13:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 13:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 13:50:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"314e21e4-7a34-4807-82af-43a1c94b8e27","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 13:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 13:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 13:55:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77e2142f-e564-4782-afba-46716da294ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 13:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 13:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 14:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 14:00:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f56c1644-23d9-491a-95e5-9b892f48c640","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 14:00:05","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 14:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 14:05:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0300fa50-b7b7-4491-8805-763d29572a7f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 14:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 14:10:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bf9ccd9d-3b69-41d8-8ebc-4f98558cdf79","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 14:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 14:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 14:15:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"246cabd5-e91e-4c57-827a-200a4ea781c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 14:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 14:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 14:20:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd27032e-9599-4e1e-b182-adde4b4e261a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 14:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 14:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 14:25:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a508e200-7eb2-4f87-983d-9f8c2961f184","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 14:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 14:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 14:30:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dd3034b6-e2d2-4ba7-b5c4-f8d011bea769","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 14:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 14:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 14:35:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"087d21f8-6877-4d41-99f2-eb0e8be2f457","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 14:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:38:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 14:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 14:40:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fa74cd45-7bae-4f1f-99a9-38c746b2fd9e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 14:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 14:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 14:45:00","totalConnections":1}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e0813db-0aa5-4a6a-8f30-0e42212f04d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 14:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 14:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 14:50:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"025097dd-d31f-462f-a02d-7ce3b4589380","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 14:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 14:55:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a888ddb3-bfac-47d7-8f47-5741dd17fd0e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 14:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 14:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 15:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 15:00:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7468913e-7ba4-422e-874c-c2a55e99bb08","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 15:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 15:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 15:05:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"be690874-2ae1-4e9b-9324-c35c1c7cb8b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 15:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 15:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 15:10:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8bca8ba3-1e39-44b4-9897-53f58b69dc43","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 15:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 15:15:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"638afe19-2a94-4e67-81e3-d0f4dd0bf6e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 15:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 15:20:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3454c384-838b-4c8a-ac12-a4b59a408e5e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 15:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 15:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 15:25:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"345136a6-15a8-42be-a951-f9f913e8bbfa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 15:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 15:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 15:30:00","totalConnections":1}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"37b5c6d9-6bfb-4f64-b574-6054a473f79e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 15:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 15:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 15:35:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3d04a1fd-cc09-4916-9964-64a412928c43","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 15:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 15:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 15:40:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"27094b96-b68f-491e-93aa-5dfafea75e1d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 15:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:41:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 15:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 15:45:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b35672cb-3841-40fc-9a44-733e654b5bf2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 15:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 15:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 15:50:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ae0c971-989c-4ebb-a2f3-d10d0a042a38","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 15:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 15:55:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98a92d60-6090-4a2c-8206-209aa26f231e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 15:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 15:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 16:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 16:00:00","totalConnections":1}
{"durationMs":1.66,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"85b2c812-1b29-4604-a8a6-6eaaa5191c07","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 16:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 16:05:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f45297e7-4ce8-49cd-8688-731195f362a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 16:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 16:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 16:10:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"357332c6-f14b-4546-8f86-220518ee482e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 16:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 16:15:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a40b85be-4fe8-42a2-8e93-c1416519020c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 16:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 16:20:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c6337f5e-76db-45e3-907f-d6a8f27db20b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 16:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 16:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 16:25:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b8fe2f0-3a14-4508-9ecd-7001ff9bc358","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 16:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 16:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 16:30:00","totalConnections":1}
{"durationMs":1.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1f24e3b3-a05f-4517-a1f0-c1e6606e2cb9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 16:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 16:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 16:35:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ba3db55-d08d-4396-bb51-51a56fb76edc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 16:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 16:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 16:40:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"344a2ee0-d211-4b37-bdfa-73dd196ca807","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 16:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 16:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 16:45:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e8dd6cc4-3efd-4c45-b182-864df36df8ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 16:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 16:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 16:50:00","totalConnections":1}
{"durationMs":2.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"efdb2c2e-c743-45d2-b8f8-ca31470f00ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 16:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 16:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 16:55:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"79c7491d-c7fb-49ae-8750-6defb8806730","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 16:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 17:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 17:00:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12e6d8bd-3260-4ab5-b35d-40a071e41f1a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 17:05:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0717fa4-b1d2-4885-aee5-914f82a0fe1d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 17:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 17:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 17:10:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"31ee0fc1-2d04-487c-85f3-e7118d2d59aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 17:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 17:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 17:15:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d635d80d-78ba-4cd0-96fa-d86cd21f5cfc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 17:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 17:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 17:20:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6498d338-0d4a-48fc-b09e-726cd5aca220","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 17:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 17:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 17:25:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ab93586-a592-429d-bbd9-510db75d5a1b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 17:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 17:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 17:30:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b93b349b-179c-4def-ad9d-554d77c6dff4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 17:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 17:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 17:35:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7dabda3d-06cb-405e-adc0-7d8924f27305","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 17:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 17:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 17:40:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aeba195f-d868-48fc-ae6b-cd87885dc602","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 17:45:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"faf3f006-fa57-4f5a-8b11-2f38d3851274","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 17:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 17:50:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"79fdcecb-4cca-4a72-9bae-51888f733504","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 17:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 17:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 17:55:00","totalConnections":1}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58e88970-9267-47cd-ab3e-c0feb52da259","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 17:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 18:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 18:00:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fd8a1e50-c7ce-4a31-a33c-730ee2a191ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 18:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 18:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 18:05:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"79b1ab5b-d869-4094-b59d-9dae003fc46f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 18:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 18:10:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b4842b9d-ded6-4186-aeda-14f9b1277df5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 18:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:14:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 18:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 18:15:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ca4e9ba4-5e9b-43f0-8303-78d24c9fd98e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 18:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 18:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 18:20:00","totalConnections":1}
{"durationMs":1.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eae2846e-3fd0-4aa7-834c-8d3b915e8b7b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 18:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 18:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 18:25:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"08e712d0-c52c-47f8-849a-4115e0057ff9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 18:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 18:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 18:30:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b8214606-99a7-45b6-a9c8-2ee3b09fdf3b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 18:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 18:35:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f788539-f4ec-40e0-8540-fa6650db3ee9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 18:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 18:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 18:40:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"389d0741-4fb0-45f5-97cd-727c4b1046d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 18:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 18:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 18:45:00","totalConnections":1}
{"durationMs":1.7,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"20b71714-164e-47c4-a4b0-b5ff3bdc8f00","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 18:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 18:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 18:50:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4e7fbe32-0ac5-4dfe-89cf-db975a6e2aa4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 18:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 18:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 18:55:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a4364af1-e997-4407-9f6f-37ecb8fbc997","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 18:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 18:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 19:00:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad4456fa-0387-4a27-87cc-10d6c2e2f81f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 19:05:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"011a0eac-975a-4539-9a66-d847b8c9644a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 19:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 19:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 19:10:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1f64f35d-937a-48de-8cd5-8bf4e36efc71","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 19:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 19:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 19:15:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dec00220-fcc1-4837-b614-4c5bb6df172a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 19:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 19:20:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6edf18a2-6c18-4550-9bc2-3ba86206dbdc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 19:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 19:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 19:25:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ca9df4f-7cdc-4e10-8b24-bcebb37159e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 19:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 19:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 19:30:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5959551d-134f-4db2-906a-6155dff82ca8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 19:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 19:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 19:35:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9fd8b8e3-e0f7-4516-b4a6-ff6c0cba5ded","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 19:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 19:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 19:40:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8c4d5608-5360-490e-a181-554250a86de6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 19:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 19:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 19:45:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"82735b13-d397-4b20-85f2-bcb33f4d04ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 19:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 19:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 19:50:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e2a72e48-039b-4bee-90aa-9bd1c0c5bb2f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 19:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 19:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 19:55:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d519a2a2-be83-4ff8-8f38-7ab97043c0e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 19:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 19:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 20:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 20:00:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dd307c91-c947-4d58-b30d-f622a2ad2948","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 20:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 20:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 20:05:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8d00ba3-d9e6-44bf-a216-e895f0e2d6d2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 20:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 20:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 20:10:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"888ce01a-72b7-4ba1-a4e8-45b4339e7c58","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 20:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 20:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 20:15:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c4675be2-8f37-4d71-89b7-685ee32ac4b6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 20:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 20:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 20:20:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4eab3c7d-03d3-41a5-8055-e37a5a0b95f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 20:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 20:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 20:25:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b84fbf23-36af-42f8-bfe8-2f4ef4c12a7a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 20:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 20:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 20:30:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"02ae4132-a8de-43f6-9628-c087578a3947","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 20:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 20:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 20:35:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"40248152-a357-4c30-b22a-9b1c45133033","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 20:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 20:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 20:40:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ebbf25aa-c717-4854-b0d4-aaf865d658b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 20:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 20:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 20:45:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5f0b3b6d-5392-4583-8fbb-7d12a8b93b39","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 20:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 20:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 20:50:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da55b0d1-200f-4fb2-855a-5145d5339fc9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 20:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 20:55:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8e65aebd-01a1-47f0-9a87-df3e11b1b0f6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 20:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 20:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 21:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 21:00:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1ade5bb-3958-413a-9b9f-2c8695571bdc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 21:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 21:05:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"57aa34c8-122c-4a01-a3ed-0488bd94c4a3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 21:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 21:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 21:10:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce965124-408d-447c-baa6-7618eadabdc0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 21:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 21:15:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"18336c34-1adb-432c-a0b7-4e26e431816c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 21:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 21:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 21:20:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6787d9ad-0324-41ae-b311-dcc24a30f8d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 21:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 21:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 21:25:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"41e42b6c-f373-4592-b16e-3ac53d1118a6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 21:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 21:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 21:30:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6368c5ed-2b0d-4c40-8318-14e95888d6f5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 21:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 21:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 21:35:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"afdeb2c9-b075-4e4f-923a-d70025ade330","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 21:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 21:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 21:40:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"65e9d1bf-3630-42a8-93b3-829f5ad1fcc8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 21:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 21:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 21:45:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"45af7844-8cec-4020-a83d-56602faaad41","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 21:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 21:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 21:50:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2d56989b-d0f6-4546-8848-216f22bb5ca9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 21:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 21:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 21:55:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4257dd91-911d-4e7d-be77-4ae8b9f06313","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 21:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 21:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 22:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 22:00:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea24d009-5578-4481-99c5-ccba8c4288b1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 22:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 22:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 22:05:00","totalConnections":1}
{"durationMs":1.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"afc43202-0609-4ec9-9fc8-d55c58f7fb51","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 22:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 22:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 22:10:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e6b17440-8ff5-490e-8419-11116f7950c3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 22:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 22:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 22:15:00","totalConnections":1}
{"durationMs":1.69,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc5f61e9-925c-40da-a0e8-81d608a19c35","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 22:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 22:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 22:20:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2e3ee0ff-fb6a-42e2-9d1c-cfa9693bf012","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 22:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 22:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 22:25:00","totalConnections":1}
{"durationMs":1.66,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5e6688d-3ea3-4e44-8190-3962acf9097e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 22:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 22:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 22:30:00","totalConnections":1}
{"durationMs":1.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e9bd18ba-f1bb-40a9-828e-750fcc1d4e4b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 22:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 22:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 22:35:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"65186dd8-a4b1-4b0e-8010-a420540fe7b7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 22:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 22:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 22:40:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4803b4a5-d2f9-4554-aa84-18544f03c685","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 22:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 22:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 22:45:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b688b939-7481-4af8-91be-cd0a787e284a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 22:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 22:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 22:50:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b78d112-1e80-45a7-beb2-1cd625769029","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 22:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 22:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 22:55:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a5e90602-559f-4f66-b1eb-a26883fd2c23","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 22:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 22:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 23:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 23:00:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cfcc4c19-e784-49b6-941d-20cc7d7c8ed6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 23:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 23:05:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"006aa37e-ebb1-4efd-8f91-65d0e04641e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 23:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 23:10:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ae0e38e-3753-44fe-b769-4a336fc89419","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 23:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:14:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 23:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 23:15:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"330a038d-fc23-4721-8c06-453c5b21e250","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 23:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 23:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 23:20:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"85b3a190-f298-4bb5-803a-7f7578dcaae1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 23:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 23:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 23:25:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"596f8d7f-728c-4851-b076-a790ab5f3860","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 23:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 23:30:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ce215cc-77c8-419a-a7f7-893cee4fbb6d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 23:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 23:35:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2320bc9d-d16f-497a-9c72-a45869bf650b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 23:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 23:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 23:40:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c6089daf-6725-4d23-b1fb-5d14c9ca914a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 23:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 23:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 23:45:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04c9ea91-786c-4988-8c4a-5b0dbeba673e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 23:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 23:50:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d5812b8f-7879-4536-97f9-26de7ecbf706","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 23:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-29 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-29 23:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-29 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-29 23:55:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"56457ade-fe2c-4e9a-afa7-0f8ee28bdfb8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-29 23:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-29 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 00:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 00:00:00","totalConnections":1}
{"durationMs":1.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bcfe40cd-7575-4b6e-9f39-fb154ab0b1d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 00:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 00:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 00:05:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"52a495c9-377a-4632-b485-51876441e720","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 00:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 00:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 00:10:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3c9344e0-f513-4ef5-bf0f-54b4b766d6d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 00:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 00:15:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3fe66942-5a2e-431a-b607-40f399827223","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 00:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:20:01"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d3226eb2-7776-4b44-96d8-ec59421243dc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 00:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 00:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 00:25:00","totalConnections":1}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe968098-0494-40e9-ae69-d3dbd0c7ffb0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 00:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 00:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 00:30:00","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"377c59e6-c659-4704-9ac7-b151ca662f9f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 00:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 00:35:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb71f6fe-2e01-441a-b898-6f97618d7183","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 00:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 00:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 00:40:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a0698a5b-56cc-488d-ac4f-5b5c99f9105a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 00:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 00:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 00:45:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5966c1ab-3674-493c-949b-730fff24a933","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 00:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 00:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 00:50:00","totalConnections":1}
{"durationMs":1.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dde8d124-6a6f-4417-bcdf-99e390dab165","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 00:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 00:55:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b763831-ccf1-49b0-ab81-57aeef88aa42","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 00:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 01:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 01:00:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8052790d-8321-4b17-88d1-8ef4bf13b16d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 01:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:05:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 01:05:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 01:05:01","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"db0ef43b-8ddf-406d-84e2-1415dd7129d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 01:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 01:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 01:10:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"139c21fc-4424-4c6e-b491-a8ae6e7f7b2d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 01:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 01:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 01:15:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ed6992c-efc5-4d91-b4c1-c46a5e5d8da2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 01:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 01:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 01:20:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df72d24c-7ef1-4cba-b522-a7ed36192c37","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 01:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 01:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 01:25:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b63b928-874b-498c-88e4-0e7b4cad1fc2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 01:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 01:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 01:30:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c89ea437-3b79-4462-8784-5982db83c9b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 01:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 01:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 01:35:00","totalConnections":1}
{"durationMs":1.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"61ef11d3-7cbf-4454-8a1a-1153021c094b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 01:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 01:40:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa13f7fd-a560-46dc-86b2-99708fb62c42","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 01:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 01:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 01:45:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7631f42-e311-499b-b3b0-9f4660199eaa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 01:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 01:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 01:50:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"63e90141-a079-4752-90e2-02c329822504","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 01:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 01:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 01:55:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a1140647-f717-4b3c-a8d4-8934939ed5e6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 01:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 02:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 02:00:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b309c182-9f5b-4f16-b1d5-fef54621af69","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 02:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 02:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 02:05:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"97b464a3-eaa3-42d6-8145-a9c895732c30","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 02:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 02:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 02:10:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6814d7f2-26e4-4c1a-9225-2e37d273f14b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 02:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 02:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 02:15:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1f75948e-f19e-435c-b0ba-8329f17ac123","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 02:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 02:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 02:20:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72c7dd31-4be1-4231-9e8e-74a69be26a31","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 02:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 02:25:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"048e0010-23a0-4592-93bc-2430f8d91919","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 02:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 02:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 02:30:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"11b1442f-e425-4d70-8954-2d45e2f06f4b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 02:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 02:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 02:35:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d3e0c806-b8b2-4a5d-a46c-d45ce1c009a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 02:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 02:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 02:40:00","totalConnections":1}
{"durationMs":1.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df8de1c0-cb7e-4777-9205-3cdc7bd337fc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 02:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 02:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 02:45:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8e2bd52b-7754-490c-a39a-b64277269cea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 02:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 02:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 02:50:00","totalConnections":1}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7975ec18-73bd-476e-a5e3-874755b4f0b4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 02:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 02:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 02:55:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"97a8c04a-7343-41fc-a4b3-e63848d737ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 02:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 03:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 03:00:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"492e5132-9b2e-47af-88e5-768baefef28a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 03:05:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fdd90817-d87e-466a-aaa1-39e4891797da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 03:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 03:10:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"79f39d7e-4853-4ef3-95c2-cd462e2f7c14","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 03:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 03:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 03:15:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"822be33a-0b85-4b04-be53-560b09f26780","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 03:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 03:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 03:20:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8cf7ee9d-67ef-401f-97af-9cab4b27cf13","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 03:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 03:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 03:25:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ffda117-f176-4c15-9a3e-a32cac6ae43e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 03:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 03:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 03:30:00","totalConnections":1}
{"durationMs":1.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c10cdadb-9ef7-4d54-a90b-7b9824469984","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 03:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 03:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 03:35:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70edeee6-6230-4135-b806-e483f8c72faf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 03:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 03:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 03:40:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ef8dc725-8034-4b23-b7ce-ceb2b2cb6452","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 03:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 03:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 03:45:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1602fd8f-76da-49ea-8224-066c0787e4e3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 03:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 03:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 03:50:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6f819f6-9771-4075-b65d-dd289ea1ac29","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 03:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 03:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 03:55:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c3351ee7-8639-4927-9335-e27454b74a17","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 03:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 04:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 04:00:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e25b6e46-1a51-442f-b27c-8ce4ea6d77c2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 04:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 04:05:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"71f2c0a0-29b1-4c21-861f-6904d2c1e3c4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 04:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 04:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 04:10:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0bf2ce72-cd6a-4e81-ae2f-9c9c57f45ae8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 04:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:11:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 04:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 04:15:00","totalConnections":1}
{"durationMs":1.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cb1448b3-94b8-4d88-a84f-4fa5d9cfaa09","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 04:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 04:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 04:20:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f313817-fff6-49f6-8bc3-b9a219575660","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 04:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 04:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 04:25:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cb577b34-b44c-47be-93e3-5ef055027e32","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 04:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 04:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 04:30:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e602c0c5-7760-4d23-9e51-fa69427dc3f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 04:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 04:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 04:35:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"02e67b3b-7f54-493b-a823-3e604f185d63","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 04:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 04:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 04:40:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5266e99c-ff9e-4e0f-819d-105c43811ceb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 04:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 04:45:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9db4150-8e68-45a1-b9f5-e097bebee8d9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 04:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 04:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 04:50:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2fa318b2-a3f8-4d00-951c-a361f1af9e62","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:51:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 04:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 04:55:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b57a7c9f-d883-4141-b32f-68e6ff195093","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 04:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 05:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 05:00:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a76d992b-d9c6-42b0-8bab-c4325f82b8a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 05:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 05:05:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dbd5a7fe-8c80-480a-803a-32bde2f67e09","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 05:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 05:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 05:10:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"259e660f-bdb1-4f70-abe1-a23bee46c150","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 05:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 05:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 05:15:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fbdab5df-f3d7-40d6-8b36-2cec86d91e17","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 05:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 05:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 05:20:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b0ee1933-9ac5-481c-884e-8626e94cd5c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 05:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 05:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 05:25:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9cfd80f-96b4-4cc4-be2f-2cca7c836d23","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 05:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 05:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 05:30:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b811b839-52ab-4e35-8827-7134681e692c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 05:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 05:35:00","totalConnections":1}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"99c159c2-2c59-4dd1-8fd2-26b38669179a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 05:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 05:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 05:40:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d29dc92-6b87-4585-ba1a-41cf70710abd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 05:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 05:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 05:45:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"412a9878-94d9-42ba-97a0-cb2611440353","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 05:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 05:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 05:50:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a422089-05b7-4a97-9e48-5ffe77a73db2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 05:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 05:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 05:55:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"78466bfb-2ab8-4a94-bd1f-80dd94d76a59","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 05:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 06:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 06:00:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b55ad31-85fb-4dd6-a655-09fbded68517","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 06:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 06:05:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7b0d18bb-1e85-49d8-b5ee-5bf756fe7b6c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 06:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 06:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 06:10:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0b8d944a-3dbf-4b2c-94f4-986aba9f5cf3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 06:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 06:15:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8c853339-792f-4282-a100-c469018b3a19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 06:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 06:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 06:20:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"604898e7-f30d-4f72-b477-13c5bd668ac6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 06:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 06:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 06:25:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1c8bbb2c-82fd-4b7f-9b9d-5d421b48e7ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 06:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 06:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 06:30:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6e4fb656-1758-49ef-a38e-6b977d2e50d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 06:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 06:35:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f60ac2f6-8b6b-4003-b610-c8db7bd4c004","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 06:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:37:00"}
{"durationMs":161.1,"ip":"35.235.70.228","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/admin","requestId":"5c2693b1-0e4b-4b26-8b05-94c6dad446da","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-30 06:37:28","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 06:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 06:40:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aeeb23fc-6a43-4529-ad01-150c9f120f03","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 06:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 06:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 06:45:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9e519d27-ec2c-4854-bc27-3cae67ffc55e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 06:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 06:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:50:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 06:50:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 06:50:01","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d760e4c3-790d-43a9-8bf6-8c98f753556b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 06:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 06:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 06:55:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12dd47a6-c103-4b63-9ede-06b6fdca341d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 06:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 07:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 07:00:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70c968a4-6bcb-412e-9ff1-23eeff6bc471","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 07:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 07:05:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b2429a0-1856-45c7-9b4e-4ef896808c46","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 07:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 07:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 07:10:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"21acac10-8446-4af6-93f4-3b204ac10bdd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 07:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 07:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 07:15:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"051461b8-6908-4980-bbef-c3a14b4653e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 07:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 07:20:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c78af2c6-483a-4e8e-bf3e-a69daf4d387c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 07:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 07:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 07:25:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a2d897e-630b-4543-9bb7-70286b1ecdc2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 07:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 07:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:30:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 07:30:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 07:30:01","totalConnections":1}
{"durationMs":1.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c1cf536f-0e84-4d4b-bf07-d6e181dc39cc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 07:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 07:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 07:35:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"47453b35-119c-4b4f-b01d-ea52e949aaa3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 07:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 07:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 07:40:00","totalConnections":1}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e9d640ea-eb96-4c1b-b829-fc95e5bbe3c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 07:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 07:45:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"57f906d2-d98c-4546-ae37-d15e935e8d16","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 07:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 07:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 07:50:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"23b94fee-5627-4978-90e5-d0d0326c8d0f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 07:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 07:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 07:55:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5f62a0f4-546b-4837-b52b-8daac6b6abd0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 07:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 07:59:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-08-30T05:00:00.413Z","service":"cbc-sms","timestamp":"2026-08-30 08:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:00:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-08-30 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-08-30 08:00:01"}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-08-30 08:00:01"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-08-30 08:00:01"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-08-30 08:00:01"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-08-30 08:00:01"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1c488d3e-f54a-458e-af08-556b60a1e1e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 08:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:05:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"18017663-2483-48d3-a164-a514e3ee5590","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 08:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 08:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:10:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d3ccceb-4432-4a4b-a44c-a8b072b5fd0f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 08:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 08:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:15:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"94ecd03e-95d3-4a14-881a-0c61e99c1358","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 08:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 08:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:20:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0dd6a8c2-dfc2-4b21-9eb9-488c967e280f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 08:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 08:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:25:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"82b246dd-d9e3-42e5-aa2b-daede0998bc5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 08:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 08:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:30:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"23d32002-f6f1-4696-8f70-3435cef77507","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 08:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:35:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0928618c-b7bf-40aa-996d-7810c449f92d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 08:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 08:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:40:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1d5d81da-635f-45b8-88a4-c6ad10f373c4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 08:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 08:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:45:00"}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"56f665b0-4a6f-4d7d-af4e-014b63976416","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 08:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 08:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:50:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c2aec9f9-43df-484e-b85b-4664faa17cc5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 08:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 08:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 08:55:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4637ff0e-36de-4d13-ab2e-0285f1cfcd39","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 08:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 09:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:00:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"827c13d6-cc48-4a44-ad6e-905c4177a435","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 09:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:05:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2ebfd52e-6b7d-4872-9322-e5dbe71b2d71","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 09:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 09:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:10:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9bcc901e-be37-4218-8272-127b9df058c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 09:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 09:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:15:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b59161fd-f85d-4391-94b2-939b97902945","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 09:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 09:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:20:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7da44c2-c0a7-4d7b-9c08-15705611f6a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 09:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:25:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9895f977-f222-4b61-b09f-badf1f9fa224","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 09:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 09:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:30:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17dc6a5a-ac7b-45ea-9032-438c9990e1db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 09:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 09:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:35:00"}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2d682ec4-ddab-4004-bf3c-2482a15356e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 09:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 09:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:40:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c86696ef-0fe2-462b-8ae0-bcbe667bcb53","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 09:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 09:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:45:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b54c9008-eb97-4aed-ad35-7698c684c8f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 09:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 09:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:50:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"14a4dc61-df89-44f0-a721-496977a9b525","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 09:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 09:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:55:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"09f0ed14-c26d-47ec-a2ae-02f53d4a0526","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 09:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 10:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:00:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"80d5917a-9522-4125-a6ab-59758808a39a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 10:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:05:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"60dc0030-8997-4755-accc-0cf400e197cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 10:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:10:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f57cbb7-2c16-4c1b-9c2f-858f4a9a96bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:11:00"}
{"durationMs":1.65,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87ae8c1f-8191-4224-b9b6-025e2199932d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:11:39","userId":null}
{"durationMs":1.72,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7677ca0e-817b-42e1-bd3f-be1bbe8370c3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:11:52","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:12:00"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":11,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 10:12:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.37,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fe18a2df-0330-4202-b95b-5046c53c6802","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:05","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":27,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 10:12:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":0.78,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8928ae7f-f779-44e8-8bd8-af0d909c4041","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:08","userId":null}
{"durationMs":1705.88,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"878b0774-90f5-47bb-837a-59da1a9a1280","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:09","userId":null}
{"durationMs":166.92,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"c2e6d02d-94b8-4db9-8f36-5da809d62fd5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":105.43,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"1931e41b-b219-4af3-b79a-18e08ab60664","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.28,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"d42479f0-ad45-4f17-9f7c-20d6d7e1e9d0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":121.07,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"c9479a34-ff4b-445c-985a-eb9537eafe04","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":43.29,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"2a94f3aa-7511-4e0e-93b0-a18b983ab5e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":202.29,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"51b472e5-abf3-4a30-b206-690bb654f657","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":290.64,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"e6e3b744-6fe7-44f8-9dad-39e68b20a197","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":2160.4,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.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.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":579.6,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":82.15,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bd23c62f-89d2-4b77-8940-e05466577073","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":339.6,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"3781ba3b-15ff-4776-8eed-624680145c1d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":332.89,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"04e7ef76-92f1-4834-9220-0b91b99fc76a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":146.06,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"81f74af8-eab9-4831-811e-e0e24b5e356c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":675.81,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"3e8778b4-c86e-4799-b123-86390a9859ec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":743.59,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"07d18b19-b44c-4868-980b-5942473aa4ca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":1821.6,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1855.4,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1894.4,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1895.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":1897,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1908.7,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1910.9,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1917.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1922.1,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.47,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"31f8eb11-92b9-4af5-a5ad-89c3b4fb19ce","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":87.75,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"edae09bd-ea07-425e-91cb-f9547001908c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":772.41,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"1082424b-47cf-496a-be70-6560f3f65298","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":724.05,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"aa154587-5c54-45bf-bc81-07b37ad8a4bc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":155.3,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"c60e3f19-18f5-4f9d-be01-1092a3ba8ef2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":807.68,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"a279832d-3839-444c-989b-8c50e7f74866","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":196.88,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"64f670cb-51fa-4cda-a03d-15aee34dcc5c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1097.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1103.1,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1129.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1238.9,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1240,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1240.9,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1242.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1243.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.9,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b78f925a-ab00-447e-9f15-17c3116ced65","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/assessments/exams","navId":"1788073959218-923363","text":"Exams"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":37.33,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dd3e864e-2c26-4cc2-8952-8fdf578f0cba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":49.38,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"fe548dc6-86ce-4b9f-8bd5-195b3e808095","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.08,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"2b975bbd-5f3c-410f-ac68-e5b833341644","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":39.41,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"1e4c9c1c-a816-47d6-9e29-edf2fbd90d66","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":182.87,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10","requestId":"6e0458bf-0947-4ef2-8f98-445473fb51be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":70.86,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"7176dd08-9821-4db8-85c4-1c1a396e5f06","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/assessments/exams","navId":"1788073959218-923363","text":"Exams","to":"/dashboard/assessments/exams"},"durationMs":1275,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788073959218-923363","to":"/dashboard/assessments/exams"},"durationMs":1275,"event":"NAV_STALL","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788073959218-923363","to":"/dashboard/assessments/exams"},"durationMs":1350,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":406.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":488,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":505.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":580.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.09,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7912edf6-7299-4c4f-b242-6fe642a81bc9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":478.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:12:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.54,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"49b1e24e-28e0-4436-87da-93d509aea158","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:12:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:13:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":73,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.84,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6aec6ce4-5157-4171-a6b3-1b6ab0cd0369","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:13:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.13,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"bee56c58-e453-40c6-b582-d855a1b07b3d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:13:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.83,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"01f62566-a456-4c65-b6c8-a1c213a95f33","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:13:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":420.7,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":484.9,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.84,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"821a08d8-5afd-4f1f-9dc5-e2f1b1d96153","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:13:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":172.48,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/pathways","requestId":"e4bbb94d-7598-4e91-85aa-899e0800c0eb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:13:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":54.93,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/pathways/stats","requestId":"c722106e-0d53-4b11-8558-afbbf5570ecd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:13:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/senior/pathways","navId":"1788073996841-322851","text":"Pathways"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","href":"/dashboard/senior/pathways","navId":"1788073996841-322851","text":"Pathways","to":"/dashboard/senior/pathways"},"durationMs":485,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","navId":"1788073996841-322851","to":"/dashboard/senior/pathways"},"durationMs":512,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.37,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0cc3d9c9-8ff6-480a-b2de-e7644a5b778d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:13:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/pathways"},"durationMs":542.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/pathways/stats"},"durationMs":639.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.45,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8abbf04a-092c-4dd8-946e-b155db88f686","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:13:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":55,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.25,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a4ab4215-e55b-4090-80fb-9c09e348a69b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:13:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1788074012379-130807","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.69,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3942348b-16cf-481e-bb7d-c9d05c1a63e8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:13:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":54.1,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"349e6055-a021-4b29-9b48-674675b45863","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:13:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":167.98,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"a62484ec-a3a5-444d-b914-d4d58f503941","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:13:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":241.05,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"bb502f30-bacc-43ab-94ac-7523bfd2d347","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:13:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":183.27,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"aac00ee9-c2d8-4c50-a490-528faad82440","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:13:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/pathways","href":"/dashboard/students","navId":"1788074012379-130807","text":"Students","to":"/dashboard/students"},"durationMs":2601,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/pathways","navId":"1788074012379-130807","to":"/dashboard/students"},"durationMs":2601,"event":"NAV_STALL","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/pathways","navId":"1788074012379-130807","to":"/dashboard/students"},"durationMs":2690,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":83,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":410.9,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":595.9,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.91,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0a4b80a2-d252-4a70-b58c-191eaaa65bbd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:13:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":1006.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":1104.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.31,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1f24902d-3587-461c-9332-71a7545dd0d1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:13:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":30,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.13,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fb47b405-c08c-4ebb-a960-8faa640ba42a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:13:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":52,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:13:57","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.56,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"47827d49-4781-457b-aa61-d65cb81d0d80","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:13:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:14:00"}
{"data":{"id":null,"label":"DEVELOPER","name":null,"type":null},"durationMs":13,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.92,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4e5effb3-0229-4a41-88c3-12ce5856af34","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":9.21,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/api/mpesa/failed-callbacks/stats","requestId":"8838c311-8500-4830-a854-c5cc559ccdf6","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-30 10:14:09","userId":null}
{"durationMs":3.93,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/api/mpesa/failed-callbacks?page=1&limit=20","requestId":"729ce14b-587f-40ae-b4db-2cedc1b46b49","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-30 10:14:09","userId":null}
{"data":{"href":"/dashboard/developer/failed-mpesa-callbacks","navId":"1788074045130-710091","text":"Failed M-Pesa Callbacks"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","href":"/dashboard/developer/failed-mpesa-callbacks","navId":"1788074045130-710091","text":"Failed M-Pesa Callbacks","to":"/dashboard/developer/failed-mpesa-callbacks"},"durationMs":509,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/developer/failed-mpesa-callbacks","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":"1788074045130-710091","to":"/dashboard/developer/failed-mpesa-callbacks"},"durationMs":509,"event":"NAV_STALL","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/developer/failed-mpesa-callbacks","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":"1788074045130-710091","to":"/dashboard/developer/failed-mpesa-callbacks"},"durationMs":541,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/developer/failed-mpesa-callbacks","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.34,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a144f97c-70ca-4b4a-bd1d-5f57848dbfc5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/api/mpesa/failed-callbacks/stats"},"durationMs":411.9,"event":"API_ERROR","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/api/mpesa/failed-callbacks"},"durationMs":509.2,"event":"API_ERROR","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.09,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5a681585-d39b-4708-ab88-603dc6cff93f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":64.74,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"449f131d-4b58-4a18-be8e-ee798c6f2294","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:14:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":42.78,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"838a474e-6f7c-4151-a6a3-532b1457d260","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:14:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":46,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/developer/failed-mpesa-callbacks","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":486.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":414.1,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.35,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"77e9e042-a3ce-40a2-b10a-8acda727520f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":17,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/developer/failed-mpesa-callbacks","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.24,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d3c1e481-c9ae-4edd-ac0b-d569eb4e3c6f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":32.53,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"5357f40e-2c24-4ce8-9428-b3502b5612a3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":37.36,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"b4c24a93-eb24-4d2a-b904-d683d94e515e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1788074056276-605269","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/developer/failed-mpesa-callbacks","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/developer/failed-mpesa-callbacks","href":"/dashboard/students","navId":"1788074056276-605269","text":"Students","to":"/dashboard/students"},"durationMs":112,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/developer/failed-mpesa-callbacks","navId":"1788074056276-605269","to":"/dashboard/students"},"durationMs":218,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":508.4,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":603.9,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.08,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"deffc347-95e0-4820-a0d1-12cca5d0db14","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":63.28,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"e4e39fbc-3f9d-4b4f-9a1f-f628914b385e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Print / Save PDF","name":null,"type":null},"durationMs":36,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":473.4,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.86,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"236b6c88-09af-4e09-9fa0-7ce3183eb601","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.41,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/api/mpesa/failed-callbacks/stats","requestId":"c7a379c0-0c22-4b61-8f81-ec351d61253e","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-30 10:14:39","userId":null}
{"durationMs":2.4,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/api/mpesa/failed-callbacks?page=1&limit=20","requestId":"c5084a51-8aa4-474b-83b7-f07a9054867e","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-30 10:14:39","userId":null}
{"durationMs":64.08,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"016d3586-c8dd-4d92-94f6-315e7f1bcc68","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":138.86,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"de61946b-4eda-453b-852e-c71724d4db5f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":181.01,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"89da24e3-b9f8-46e7-89dc-e8809bb67d7e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","href":null,"navId":null,"text":null,"to":"/dashboard/developer/failed-mpesa-callbacks"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/developer/failed-mpesa-callbacks","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":null,"to":"/dashboard/developer/failed-mpesa-callbacks"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/developer/failed-mpesa-callbacks","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/api/mpesa/failed-callbacks/stats"},"durationMs":370.5,"event":"API_ERROR","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/api/mpesa/failed-callbacks"},"durationMs":423,"event":"API_ERROR","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/developer/failed-mpesa-callbacks","href":null,"navId":null,"text":null,"to":"/dashboard/students"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/developer/failed-mpesa-callbacks","navId":null,"to":"/dashboard/students"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":112.28,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0d6b325b-1ccf-4937-9571-d1b48c505eda","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":409.7,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":558.7,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":561.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.43,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cbafc48a-d408-4813-9b02-0fd2050c8714","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":56,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.75,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7b8ca39f-7311-43d7-8284-e81e2f3e0cfe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/clocking","navId":"1788074085056-705993","text":"Clocking"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.36,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e8fe78b4-c08d-42d2-af3e-4e9ca6972d6f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":97.44,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/staff-log?page=1&limit=20&date=2026-08-30","requestId":"9139c11f-1338-4e04-9606-2ca9231d40c3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":69.77,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/daily-stats?date=2026-08-30","requestId":"7fa0eca7-aace-4467-8f19-9362759e1158","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","href":"/dashboard/clocking","navId":"1788074085056-705993","text":"Clocking","to":"/dashboard/clocking"},"durationMs":880,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":"1788074085056-705993","to":"/dashboard/clocking"},"durationMs":880,"event":"NAV_STALL","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":"1788074085056-705993","to":"/dashboard/clocking"},"durationMs":925,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/clocking/staff-log"},"durationMs":455.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/clocking/daily-stats"},"durationMs":481.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.03,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0d184b6f-83e9-490d-84c7-8637f0630179","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"QR Code Scanner","name":null,"type":null},"durationMs":19,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:14:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.83,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"11037d03-8e5e-4fa7-bb5c-1d27b290b65a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:14:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 10:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:15:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b504d97-5205-4bdc-b7db-95d57cc151b3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:01","userId":null}
{"data":{"id":null,"label":"Start Scanner","name":null,"type":null},"durationMs":10,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:01","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.34,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2b8cc6f7-1d49-4b00-b549-efec8f91b692","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Biometric & Camera","name":null,"type":null},"durationMs":26,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.75,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3757d78a-cd11-48ff-812c-71a5db176cde","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":84.3,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2c1b1903-b41a-4ab8-9615-8fb863baebde","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:15:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":64.02,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"7769651d-6329-40d8-8c02-9f077334c9eb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:15:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":493.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":475.9,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.87,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a8c67d82-a16a-4bc8-8792-62b389a687eb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":61,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.58,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0aa8bc51-d2dc-4c2a-a74e-b957b7c3d0d6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":62.65,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"52809565-cca2-435c-a4c7-6aa4dfe72bd7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":88.9,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/history?limit=1000","requestId":"0976c9ba-bf70-4584-b834-1d87eda8999f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":43.97,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"7c18fdba-f8f7-4e0c-b7cb-3a7ab6d0e4e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:15:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/communication/whatsapp","navId":"1788074127614-257807","text":"WhatsApp"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/clocking","href":"/dashboard/communication/whatsapp","navId":"1788074127614-257807","text":"WhatsApp","to":"/dashboard/communication/whatsapp"},"durationMs":575,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/clocking","navId":"1788074127614-257807","to":"/dashboard/communication/whatsapp"},"durationMs":575,"event":"NAV_STALL","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/clocking","navId":"1788074127614-257807","to":"/dashboard/communication/whatsapp"},"durationMs":607,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.39,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e78498fd-4ac9-4999-9814-c1637b43d25b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":452.9,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/history"},"durationMs":608.4,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":739,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.62,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"473e5956-dd0c-4861-8360-a71b07e1cdde","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/whatsapp","href":null,"navId":null,"text":null,"to":"/dashboard/clocking"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:36","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/whatsapp","navId":null,"to":"/dashboard/clocking"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:36","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.65,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"29c564ee-8272-4c6f-acc8-8d1d76972485","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.52,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"ab19efd3-c0af-4311-b21c-818aaecb3175","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.91,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"e0388d6f-5eeb-4382-8fb6-ee95276e2d56","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/clocking","href":null,"navId":null,"text":null,"to":"/dashboard/students"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/clocking","navId":null,"to":"/dashboard/students"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":387,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":542.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.02,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5e76e5b8-a8e9-4a7c-ae94-d4bf1cd32fdb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.83,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"7224b2c3-7ea7-4b63-8c17-bd5342cf4f97","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.11,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/years","requestId":"5e30d2b2-1962-41f8-adbe-b870c7c319e2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.58,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/promotions/stats","requestId":"5240b3bb-f4f8-40e4-a71f-b8c95d13eedd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":44.31,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/promotions","requestId":"8d81e4ac-6822-4b2e-8fc7-f5fe3e96f4cd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Promote Students","name":null,"type":null},"durationMs":44,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":451.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academic/years"},"durationMs":461.9,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.48,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1d9cec2e-0aae-4c86-ba4f-27fe81d5f033","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":83.25,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"5b41c1b4-9b58-41a3-b7b9-4f75472f0110","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":114.13,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students","requestId":"b0ba73b0-abc8-4356-986e-2c1fbd918f8e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/promotions/stats"},"durationMs":836.7,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/promotions"},"durationMs":872.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"ID Cards","name":null,"type":null},"durationMs":11,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.65,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7535fafd-d479-4031-8313-d2c69b6133e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":486.6,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:44","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":493.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:15:44","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.59,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"41e2c444-118e-48d0-a74a-4f36cb54435f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:15:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:16:00"}
{"durationMs":54.67,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"58043707-2437-473b-bbd3-d3d2bbb3db29","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:16:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":111.82,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10&status=TRANSFERRED","requestId":"cbae3413-3c3b-4a72-9f4c-3f0cc8fbd77f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:16:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Transferred","name":null,"type":null},"durationMs":73,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:16:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":472.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:16:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":481.6,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:16:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.97,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"856961da-760e-4d24-b06a-b7609625cfc3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:16:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":130.09,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?status=ACTIVE&limit=100","requestId":"4caf6ac3-9db6-42f5-b7c0-0c5af2f46afa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:16:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Student Clearance","name":null,"type":null},"durationMs":17,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:16:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.96,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d5372dd0-7ecf-4316-93d1-a73181beb498","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:16:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":834.4,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:16:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.32,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"91b37275-c55e-4d05-8c67-172df2d45cb0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:16:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.72,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b6fdbc22-4010-42bf-836f-65e8ca69b728","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:16:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":179.79,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"5ad2023f-ed96-4db0-850e-2310592eb05e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:16:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":457.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:16:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":608.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:16:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.9,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c2ed96b4-e7e6-4d6c-9f51-8ef73a12e5b7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:16:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":308.77,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/fees/summary","requestId":"c9c213a5-7591-441a-aff5-fd88f6cd8b01","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:16:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.09,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/borrowed/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","requestId":"1e345d96-7fe7-4111-b22b-41a28db65db9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-08-30 10:16:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.5,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/assigned/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","requestId":"a6f92e6e-699d-4522-af21-fd45e347adff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-08-30 10:16:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.89,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"0794a8f1-d200-4e71-a944-89e2df44e21a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:16:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"EKElvis  kahindiADM-2025-0105","name":null,"type":null},"durationMs":15,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:16:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/fees/summary"},"durationMs":726.6,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:16:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/library/borrowed/ccf1345c-ce6c-441f-a9da-c788b4eaca0c"},"durationMs":742.8,"event":"API_ERROR","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:16:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.36,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"539923cf-e816-4db8-ab5e-c4396533440a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:16:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/inventory/assigned/ccf1345c-ce6c-441f-a9da-c788b4eaca0c"},"durationMs":906.6,"event":"API_ERROR","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:16:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":1236.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:16:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.76,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c4b3fe32-51d5-4982-970e-fdee80b15053","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:16:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 10:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:20:00"}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de6554a2-ec73-4b66-a05f-3e396c9a3bda","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:22:00"}
{"durationMs":98.8,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c9e45e1b-af0d-4fce-bcdc-4bd41df1ee4b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:22:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.04,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9a265e36-1fa9-4327-a64d-70b57d30c0c6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:22:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":507,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:22:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":741,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:22:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.99,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"60467aa9-10f3-4440-b961-32ce43d71ed0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:22:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:23:00"}
{"durationMs":255.52,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0d675c02-c418-4f74-a67d-e3a4a4ad9dc8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:23:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":260.09,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1b62a3f0-4483-43e3-a9ca-023399639834","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:23:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":900.1,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:23:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1112.4,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:23:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.86,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6dd45802-5172-483a-91d5-0b8a7e05c274","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:23:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":71.91,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"730460de-98d1-4b1a-9673-1bfb947cf232","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:23:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":136.21,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10&status=TRANSFERRED","requestId":"6892cb3f-7ef1-4c28-9fb1-56e099197d9a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:23:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Transferred","name":null,"type":null},"durationMs":106,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:23:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":492.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:23:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":498.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:23:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.63,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1db4107e-4f9a-41cc-84c3-e1b89e8962f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:23:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:24:01"}
{"data":{"id":null,"label":"All Classes","name":null,"type":"button"},"durationMs":113,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:24:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.75,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7027aa9a-2d9e-4471-96d3-d520364c9015","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:24:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":178.19,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students","requestId":"0cf975db-b207-44e5-b2db-7ff39e1e6b46","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:24:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":116.63,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"8159be3f-df25-49e3-9392-387ebdac1794","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:24:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"ID Cards","name":null,"type":null},"durationMs":10,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:24:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":691.4,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:24:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":720.6,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:24:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.14,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"766e4e12-db59-4a46-837a-09efe805cebf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:24:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Download PNG","name":null,"type":null},"durationMs":4,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:24:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.26,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bcbe4a1f-94cc-4e40-bc28-9ec31c0f59ca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:24:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.82,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6db5fa6c-874b-4b8f-a348-20d1d7e320ff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:24:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":121.74,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ffd9a988-5542-44d0-8536-09bab2424952","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:24:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":425.9,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:24:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.52,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e2d88b3d-bb6a-4ad9-a35b-677564819870","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:24:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1263.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:24:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.56,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bb040c83-223c-46a1-ad95-3ccab115275e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:24:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":76.62,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"4f3e66d1-4e37-4c74-83c7-fab0edb8d404","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:24:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.45,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/years","requestId":"f86a59ae-2e69-4b49-86a9-5ef74befbc2d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:24:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.72,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/promotions/stats","requestId":"f35c7f2e-b7c8-407f-b912-ad44412aa0ee","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:24:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Promote Students","name":null,"type":null},"durationMs":61,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:24:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":479.6,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:24:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academic/years"},"durationMs":753.1,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:24:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":35.3,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e9218aad-f6e5-4aaa-aad8-9d262ebb2ed3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:24:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.07,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/promotions","requestId":"df476c76-2bce-4c3e-b557-15a46ba9c5e7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:24:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 10:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 10:25:00","totalConnections":1}
{"data":{"method":"GET","status":200,"url":"/promotions/stats"},"durationMs":1086.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/promotions"},"durationMs":1547.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.97,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1edd6603-6238-461a-90f0-c2f2d3e962c6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4094e74f-b7e1-4935-8b18-0fbb138b0384","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:01","userId":null}
{"durationMs":54.87,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"91522516-a140-47d0-83d4-bb6a98bf9457","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":94.17,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"741bfa10-a150-46d4-bdc1-884502eb1fbe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":83.32,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"644af84f-4c0a-4636-a186-a8a7c9966e3d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":159.63,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"fb079555-4b8e-415a-bac4-1325783305fc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Dashboard","name":null,"type":null},"durationMs":102,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.36,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"33f7bb46-a4dc-4d3d-b3b5-4b8952e086d2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":872.9,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":935.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":1158.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":1242.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.58,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"38f1c20d-7985-4446-bed4-76881a68a022","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":99,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.98,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"84eb9828-0f6a-46c9-92b7-9156b13ab139","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/guardians","navId":"1788074719324-967644","text":"Guardians"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","href":"/dashboard/guardians","navId":"1788074719324-967644","text":"Guardians","to":"/dashboard/guardians"},"durationMs":523,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":"1788074719324-967644","to":"/dashboard/guardians"},"durationMs":523,"event":"NAV_STALL","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":"1788074719324-967644","to":"/dashboard/guardians"},"durationMs":565,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.54,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f6a9a5b0-509f-4d60-97d5-50ccfad27ff1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":278.77,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&includeStudents=true","requestId":"8dbcf072-95a6-4622-afbd-b1e7d930a1bb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":63.4,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"75b2b520-dc25-4a76-bfa8-52de8e5f123c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:25:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/guardians"},"durationMs":1850.7,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":774,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.48,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fad2df70-333f-45b7-b7cc-815309ad34c8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":63.29,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"4e039c9a-789b-4e80-a178-0067214bb717","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:25:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1166.6,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.93,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"94e92c14-23d2-4775-af7b-f3e0d2d3bd79","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":81,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.6,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4c4aca23-77b2-4255-8b1d-4cf99af20419","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable","navId":"1788074731615-844597","text":"Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:36","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.21,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bd03862e-5911-4dbf-9b7d-5ad17a26fbdd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53.5,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"350a9ef2-8bfc-426c-90ff-7d587269249c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":261.42,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff?role=TEACHER&limit=100","requestId":"77c6e176-030b-4a39-b82e-bc81a3bf3c0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":168.61,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/rooms","requestId":"0cca6dfc-d0d1-4a2e-b36c-c739dff2d73b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.89,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/academic-years","requestId":"c676f022-89f1-4f68-847f-e9613fa2ff29","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","href":"/dashboard/timetable","navId":"1788074731615-844597","text":"Timetable","to":"/dashboard/timetable"},"durationMs":1004,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","navId":"1788074731615-844597","to":"/dashboard/timetable"},"durationMs":1004,"event":"NAV_STALL","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","navId":"1788074731615-844597","to":"/dashboard/timetable"},"durationMs":1037,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.53,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4644969f-5570-4647-94b3-744da78fce15","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":1109.4,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff"},"durationMs":1772.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/rooms"},"durationMs":2096.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/academic-years"},"durationMs":2248.1,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.26,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"319db30b-6064-4746-b53b-84f0e86ee4d4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"By Teacher","name":null,"type":null},"durationMs":32,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.31,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"98088819-cf59-4a61-ac84-7add17331c37","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.13,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/settings/school","requestId":"b61c2f6c-5f42-4ca6-b37f-c95f23dbac64","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":406.97,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/timetables/master-view","requestId":"69dd53d0-8133-40f8-8a67-8a602ed4a1a1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Master View","name":null,"type":null},"durationMs":31,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/settings/school"},"durationMs":655.9,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.55,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"380dc1c1-e23b-4ec6-a639-c4b8cf43ab7e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Workload","name":null,"type":null},"durationMs":11,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/timetables/master-view"},"durationMs":1463.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.98,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a7e81c98-8ec3-449a-a3df-b6faf0fba594","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable?tab=lesson_card","navId":"1788074740421-400270","text":"Lesson Card"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.66,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aa505212-76d6-4330-89ba-fb56cd294eda","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":195.48,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/timetables/setup/periods","requestId":"e2db8dc0-28f3-41a5-b247-430dc276ebdc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable/setup","navId":"1788074742195-702052","text":"Timetable Setup"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","href":"/dashboard/timetable/setup","navId":"1788074742195-702052","text":"Timetable Setup","to":"/dashboard/timetable/setup"},"durationMs":414,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/timetable/setup","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","navId":"1788074742195-702052","to":"/dashboard/timetable/setup"},"durationMs":436,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/timetable/setup","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.91,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4e6741b0-bd20-4e2d-9e1f-f6f6285dcc3b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/timetables/setup/periods"},"durationMs":812.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:25:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.92,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7f2c0c27-689b-4b73-845e-2e0548c5a328","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:25:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:26:00"}
{"data":{"id":null,"label":"Rooms","name":null,"type":"button"},"durationMs":40,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable/setup","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.35,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"99599fe2-de7c-4bdc-897f-b9a6d6cd35a4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.22,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4fba0719-d77f-4b70-876a-e4617bbcb042","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:26:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.28,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"47239737-34d7-4425-868d-123e3735d8b8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:26:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":457.9,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.37,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"451b88e8-3c51-4f6e-a7e8-98fa1cc5edda","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":403.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.34,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"08b68137-e7be-44d1-8e10-f83d086cfb85","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":72.49,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/class-groups","requestId":"5fafbb17-4c3d-43d8-aa53-dfec9f083391","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Class Groups","name":null,"type":"button"},"durationMs":11,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable/setup","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/class-groups"},"durationMs":473.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.35,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0ef1ebf1-2c4e-4798-9e7c-dac87a8d449a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Add Class Groups","name":null,"type":null},"durationMs":16,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable/setup","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable/setup","href":null,"navId":null,"text":null,"to":"/dashboard/class-groups"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-groups","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable/setup","navId":null,"to":"/dashboard/class-groups"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-groups","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5675db3a-85c9-4883-aa5d-029aa65a2fbc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-groups","href":null,"navId":null,"text":null,"to":"/dashboard/timetable/setup"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/timetable/setup","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-groups","navId":null,"to":"/dashboard/timetable/setup"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/timetable/setup","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.56,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cca14df6-ccf0-4609-aa42-2194fd10454f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":43.69,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"c9f06db3-f781-43c1-8573-9d535ead7fc7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.66,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"14f6d342-aefa-416a-98d2-8eae8e6f2d3b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":162.18,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff?role=TEACHER&limit=100","requestId":"9acb92bb-3396-4b48-96ac-3bb1376e10e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":269.94,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/teacher-assignments","requestId":"2ae80bcf-503e-48b3-8cbe-2adcc6e3685d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":34.29,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/terms","requestId":"0a17d436-721b-40d5-853a-635dba147833","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.71,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"091a5046-d45a-449c-924f-3a3a44a6618f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable/builder","navId":"1788074800111-598332","text":"Build Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable/setup","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable/setup","href":"/dashboard/timetable/builder","navId":"1788074800111-598332","text":"Build Timetable","to":"/dashboard/timetable/builder"},"durationMs":570,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/timetable/builder","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable/setup","navId":"1788074800111-598332","to":"/dashboard/timetable/builder"},"durationMs":570,"event":"NAV_STALL","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/timetable/builder","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable/setup","navId":"1788074800111-598332","to":"/dashboard/timetable/builder"},"durationMs":638,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/timetable/builder","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.75,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"035f9309-7e60-42c6-936e-f3ef85cc681c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":384,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":722.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff"},"durationMs":1128.7,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/terms"},"durationMs":1411,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/teacher-assignments"},"durationMs":1417,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1645.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":11.31,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2f59dd16-7386-4c66-97fa-c0fe8e421fbe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.93,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"a4e98ee9-e21e-4380-bb10-a40b39fb51f8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":67.94,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/rooms","requestId":"a3321249-6ed8-4f84-9b7c-2751b92af7c0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:26:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":84.27,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/academic-years","requestId":"aafee773-917b-48ae-a9f6-1e796878f402","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable","navId":"1788074806407-894434","text":"View Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable/builder","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable/builder","href":"/dashboard/timetable","navId":"1788074806407-894434","text":"View Timetable","to":"/dashboard/timetable"},"durationMs":76,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable/builder","navId":"1788074806407-894434","to":"/dashboard/timetable"},"durationMs":101,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.41,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"96d92f7c-57be-440a-8cb1-830225914393","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":829.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/rooms"},"durationMs":1121.9,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/academic-years"},"durationMs":1127,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.53,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c9463053-8621-4fc7-8ac8-daed19bc21a2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable?tab=lesson_card","navId":"1788074813441-865826","text":"Lesson Card"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.83,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"078f31c4-b414-4018-8316-6fe7c2f20efe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":71,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:26:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.66,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"deab35c4-ab53-42df-b88a-ab0c6a4e1cca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:26:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:27:00"}
{"durationMs":56.11,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"fac7daa7-ac9f-4b2a-b962-b9ad14072b25","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":102.26,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=&limit=100","requestId":"31f96146-edf7-4e33-95f2-9c75fd3d9534","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.11,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/learning-areas","requestId":"0a69fa38-511c-4032-825a-1b8a4cf519c7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.4,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"1d67e341-f0f4-48fb-a355-96724d1541a0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:27:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academics/assessment-analysis","navId":"1788074823005-155436","text":"Assessment Analysis"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","href":"/dashboard/academics/assessment-analysis","navId":"1788074823005-155436","text":"Assessment Analysis","to":"/dashboard/academics/assessment-analysis"},"durationMs":485,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","navId":"1788074823005-155436","to":"/dashboard/academics/assessment-analysis"},"durationMs":547,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.6,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4b3fac56-1f20-4054-bff7-c7946bc07118","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":3.4,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/analytics?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"d4d6344c-7ba1-49ba-87f4-ef7abcde72ef","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 10:27:09","userId":null}
{"durationMs":3.09,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x&limit=100","requestId":"e1749832-27c0-47c2-aec5-1d33a157045e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 10:27:09","userId":null}
{"durationMs":412.36,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"9f47f5a9-9b5f-4da0-99ab-38fa8f2ac15e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:10","userId":null}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":801.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 10:27:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":856.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 10:27:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":200,"url":"/cbc/learning-areas"},"durationMs":1011.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 10:27:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":1308.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 10:27:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/cbc/analytics"},"durationMs":687.2,"event":"API_ERROR","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 10:27:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":3.83,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2fdc6aa4-0e10-4702-a4b6-c4370d1e4eed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:10","userId":null}
{"durationMs":78.78,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x&limit=100","requestId":"8e54bdc2-b644-47ef-b70e-15a2d55d74cb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/assessments"},"durationMs":1300.7,"event":"API_ERROR","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.24,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aa982893-fdf1-467a-88ca-a688bb868a76","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":585.97,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/analytics?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"3e4813ee-c96f-4b0b-b867-f9ca6fc9509b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":416.7,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/analytics"},"durationMs":915.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.46,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f88b87bb-6fc1-43c7-9397-68fbc21181e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":70,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.55,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7c11f56f-d0cd-4de1-b3c7-f5ef001ab630","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":139.59,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/elective-access/stats","requestId":"a7dc7685-e3b3-4603-9dcd-cd934ca562f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":152.63,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/elective-access","requestId":"3bc3430b-b796-4c72-9265-bf7f7ef5aca7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/senior/elective-access","navId":"1788074832353-19439","text":"Elective Access"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/assessment-analysis","href":"/dashboard/senior/elective-access","navId":"1788074832353-19439","text":"Elective Access","to":"/dashboard/senior/elective-access"},"durationMs":424,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/senior/elective-access","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/assessment-analysis","navId":"1788074832353-19439","to":"/dashboard/senior/elective-access"},"durationMs":443,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/senior/elective-access","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.47,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4b7cff5a-2b48-4d41-b3e0-b6e61dc3cfb9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/elective-access/stats"},"durationMs":492.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/elective-access"},"durationMs":498.7,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.6,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"04a1c455-752b-457c-9b0a-6cf7734dcb55","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":71,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/elective-access","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.23,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e331f276-2d17-4365-92e5-dda93b36e2b3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.85,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"60a61c0f-3e6b-4ead-a7eb-d059fe7ff1b1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:27:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":407.6,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/invoices","navId":"1788074844010-489416","text":"Invoices & Reports"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/senior/elective-access","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.39,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"34b3fe4a-c22f-49b5-a6f9-690305b78ea0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":71.03,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d35abaca-e0b0-484a-9a96-52c3628676e8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:27:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":94.08,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"0e311598-dd17-4551-a75e-ed4ec687978a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":110.47,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"dd42430b-94cf-4e71-9549-c543f6386488","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":193.67,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/payments?page=1&limit=20","requestId":"04459013-57bd-4c17-a6e3-7a8ed1a691de","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":773.8,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/dashboard","requestId":"f0242d76-96a3-440a-9749-6db06acdf062","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/elective-access","href":"/dashboard/finance/invoices","navId":"1788074844010-489416","text":"Invoices & Reports","to":"/dashboard/finance/invoices"},"durationMs":854,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/elective-access","navId":"1788074844010-489416","to":"/dashboard/finance/invoices"},"durationMs":854,"event":"NAV_STALL","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":843.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/elective-access","navId":"1788074844010-489416","to":"/dashboard/finance/invoices"},"durationMs":921,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":433.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":440.7,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/payments"},"durationMs":551.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.69,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"eda3bd56-6cc3-44dd-b9bf-3a2cfccb801a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1562.31,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?page=1&limit=20","requestId":"6268d844-1aa4-4be1-b411-be250e991374","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/dashboard"},"durationMs":1173.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.42,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9eff63dd-46b3-4cca-b905-6c8e4827673d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices"},"durationMs":2293.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:27:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.35,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"004158d5-98bf-4d1e-85b0-16e3b8f2e965","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:27:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 10:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:30:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3a9c658c-f567-4c91-b04f-3f3352e9b7cf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:30:02","userId":null}
{"durationMs":75.68,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"7aa1d143-598b-4ec6-9fc8-ba83a8f755f8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:30:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":92.32,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ecb0e7fe-99c8-406b-8386-e90f6e7f885f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:30:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1128.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:30:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1157.4,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:30:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.68,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aee4a179-9881-4119-abf1-917429d8a1ac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:30:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":120,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:30:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.1,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0737e904-ea46-455c-a56b-86acfa290e4e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:30:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/cbc/report-cards","navId":"1788075048189-437180","text":"Report Cards"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:30:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.81,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"040791cf-285d-4cba-a349-e8ed9f9fdbc6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:30:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":172.36,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"cda6761e-6c4c-4682-94b6-25b7eff7a59f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:30:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":278.45,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"f3dda6c1-5c62-472d-a25e-54e85d973718","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:30:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":261.13,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"f8b1e41b-432c-4d4d-bd43-d7ee6e0daef1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:30:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":365.07,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"674808ca-4aa5-4bae-b0e8-2c6bae5fecb7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:30:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":390.94,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments","requestId":"6a4c5b29-25e8-4ba7-89d4-d9b2dc2ff2d2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:30:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":240.19,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"280d8d95-04a9-49ef-8ed5-d0bfbcb30c90","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:30:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":623.28,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10","requestId":"5a5f959f-81a9-4ae6-87f7-69a1bb1454b5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:30:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":382.47,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"aed9d06d-d31a-4cf1-bef0-672e17ac3db6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:30:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/invoices","href":"/dashboard/cbc/report-cards","navId":"1788075048189-437180","text":"Report Cards","to":"/dashboard/cbc/report-cards"},"durationMs":1184,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:30:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/invoices","navId":"1788075048189-437180","to":"/dashboard/cbc/report-cards"},"durationMs":1184,"event":"NAV_STALL","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:30:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/invoices","navId":"1788075048189-437180","to":"/dashboard/cbc/report-cards"},"durationMs":1275,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:30:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":506.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:30:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":593.7,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:30:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":613.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:30:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":717.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:30:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":751.6,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:30:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":729.6,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:30:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.89,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f2d8519f-5cef-4e2d-a686-e0bb594c2267","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:30:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":991,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:30:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":1058.9,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:30:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.42,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aa8b10ae-8371-4c2c-83bb-2afc378a12cc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:30:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:31:00"}
{"data":{"id":null,"label":"Generate","name":null,"type":null},"durationMs":1097,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:31:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.19,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dd545402-73e9-4972-ac9a-ac8a4808d4d4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"All Assessments (Full Term Report)","name":null,"type":"button"},"durationMs":209,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:31:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.46,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0ddb926d-8781-4475-9fb8-5cb04d8829e5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Generate Report Cards","name":null,"type":null},"durationMs":13,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:31:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.2,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4f440b1b-fb93-4c38-b797-e4367833602b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2177.72,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/cbc/report-cards/bulk","requestId":"dfea29f9-0f6b-4b1d-984f-f19cbafb7a6a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":201,"timestamp":"2026-08-30 10:31:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":152.21,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"aa9df7d4-e675-4690-ad3c-8c82db5f16a8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":201,"url":"/cbc/report-cards/bulk"},"durationMs":2628.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:31:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":1098.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:31:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.8,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e4edcab9-8dba-465c-9cd9-cbdffd7e720a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":77.16,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e32075d0-820d-4d71-b1ae-3aa494ecb2f0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:31:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":87.56,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e2f6e8d1-e8e3-468a-86e2-15a90ca6b51f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:31:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":424.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:31:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":427.1,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:31:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.34,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"847f5133-c733-4a2d-b5dc-5c5234d2d113","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Term 1 — 2026","name":null,"type":"button"},"durationMs":734,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:31:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.28,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ff1100cd-e03b-4d23-8cda-d64f845f8adc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"All Classes","name":null,"type":"button"},"durationMs":748,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:31:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.03,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"eba8ae20-736e-4203-afa0-2caffbf98daf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":37.52,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams?gradeLevelId=cmp8gtpop00ds8bcnbkj0vzc3","requestId":"bc59658f-936b-4b00-9807-afa9a088445f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.46,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x&gradeLevelId=cmp8gtpop00ds8bcnbkj0vzc3","requestId":"1711f4e0-fcf4-4346-8e79-3677a7a16a12","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":395.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:31:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":418.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:31:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.07,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8ace1eee-c87f-487b-a245-035e30d5a550","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Term Overall","name":null,"type":"button"},"durationMs":76,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:31:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.36,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"eda1de40-005b-47ca-a403-ffc8f54806b5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.03,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x&gradeLevelId=cmp8gtpop00ds8bcnbkj0vzc3&assessmentId=1bc4c141-7909-4356-9f42-2b08fdc4fb8d","requestId":"00bc4323-7c2a-4d37-bd86-4d26fac456c7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":458.6,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:31:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.39,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7afe369e-4b5f-4b2c-9fd4-09ab324d5952","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"All Streams","name":null,"type":"button"},"durationMs":74,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:31:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.42,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"02d1392f-0549-44ac-936e-e4ae553d5653","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.3,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x&streamId=cmp8gtpsd00eu8bcn8uahdqq4&assessmentId=1bc4c141-7909-4356-9f42-2b08fdc4fb8d","requestId":"9b20bf26-c884-43b5-bd6b-2d8e4ff4e442","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":368,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:31:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.7,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"314dfde8-c221-4eb1-8d27-5960f31d49e1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Term 1 — 2026","name":null,"type":"button"},"durationMs":78,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:31:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.34,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"985c99cd-b272-4212-8ecb-fc20d3a02a38","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":104.38,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10&termId=cmp8gtpmv00da8bcnk5rsmytz&streamId=cmp8gtpsd00eu8bcn8uahdqq4&assessmentId=1bc4c141-7909-4356-9f42-2b08fdc4fb8d","requestId":"ac65ddaa-a8b6-4b19-bc48-64e97f445fd9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":131.14,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpmv00da8bcnk5rsmytz","requestId":"142da135-178a-462f-adb2-780a20581edf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:31:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":431.6,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":460.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.21,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"54a50f4a-e7ed-44b1-94df-68df567dd479","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:32:00"}
{"data":{"id":null,"label":"Grade 7","name":null,"type":"button"},"durationMs":91,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:01","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.7,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d3c6fabf-599e-4efd-8b65-5e890bc6f6d6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":33.76,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams?gradeLevelId=cmp8gtpns00di8bcnjev1n79g","requestId":"201c577b-5860-49c4-a020-e5be8ad1358f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":67.82,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10&termId=cmp8gtpmv00da8bcnk5rsmytz&gradeLevelId=cmp8gtpns00di8bcnjev1n79g&assessmentId=1bc4c141-7909-4356-9f42-2b08fdc4fb8d","requestId":"4e1b1350-505f-4188-88f1-ff9cf5fe8615","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":410.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":387.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.56,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"967b6f4f-43b1-4bd3-b92c-74c06c7b7c0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":84,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.37,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"71bb09bf-d5d4-4c8b-919b-0c41679bd412","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"limit":20,"page":1},"error":"Unknown column 'counselor.photoUrl' in 'field list'","ip":"154.159.237.80","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.select (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async CareerGuidanceSession.findAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1140:21)\n    at async Promise.all (index 1)\n    at async CareerGuidanceSession.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listSessions (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/career-guidance.service.js:45:44)\n    at async listSessions (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/career-guidance.controller.js:6:46)","timestamp":"2026-08-30 10:32:18","url":"/api/v1/senior-secondary/career-guidance","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":122.36,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/career-guidance","requestId":"0415bdf9-e9a3-4e86-b8eb-d1f79116a2be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-08-30 10:32:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":104.19,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/career-guidance/stats","requestId":"71789da8-8593-4338-9448-616e74c7d3dd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/senior/career-guidance","navId":"1788075133975-458141","text":"Career Guidance"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/cbc/report-cards","href":"/dashboard/senior/career-guidance","navId":"1788075133975-458141","text":"Career Guidance","to":"/dashboard/senior/career-guidance"},"durationMs":461,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/cbc/report-cards","navId":"1788075133975-458141","to":"/dashboard/senior/career-guidance"},"durationMs":474,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.29,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fe0ec3bd-9387-40a6-89fc-ecfcec5f6ab3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"limit":20,"page":1},"error":"Unknown column 'counselor.photoUrl' in 'field list'","ip":"154.159.237.80","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.select (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async CareerGuidanceSession.findAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1140:21)\n    at async Promise.all (index 1)\n    at async CareerGuidanceSession.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listSessions (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/career-guidance.service.js:45:44)\n    at async listSessions (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/career-guidance.controller.js:6:46)","timestamp":"2026-08-30 10:32:19","url":"/api/v1/senior-secondary/career-guidance","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":115.17,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/career-guidance","requestId":"d186d848-555d-49a1-9c6a-73f24003dac6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-08-30 10:32:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/senior-secondary/career-guidance"},"durationMs":443.1,"event":"API_ERROR","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:19","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/career-guidance/stats"},"durationMs":460.4,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:19","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.06,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6c4c8c9f-b32b-48ae-be26-a650a51bd034","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/senior-secondary/career-guidance"},"durationMs":435,"event":"API_ERROR","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.19,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"02cad64d-f7ea-4389-ab31-f7f68ef594d1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":76,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.08,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6be29aeb-e7be-4840-b928-9e897d87b31b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/integrations","navId":"1788075142087-217250","text":"Integrations"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/career-guidance","href":"/dashboard/finance/integrations","navId":"1788075142087-217250","text":"Integrations","to":"/dashboard/finance/integrations"},"durationMs":474,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/integrations","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/career-guidance","navId":"1788075142087-217250","to":"/dashboard/finance/integrations"},"durationMs":491,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/integrations","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.55,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e3383258-5ab0-4ae6-9843-ccbebccb3b6c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":124.89,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/integrations/connectors","requestId":"e08e1903-e739-43c2-b146-090049438215","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":124.08,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/integrations/connections","requestId":"f5f45f40-b6db-4748-a305-2334eafd8e76","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:27","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":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/integrations/connected-apps","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/integrations","navId":null,"to":"/dashboard/finance/integrations/connected-apps"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/integrations/connected-apps","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/integrations/connectors"},"durationMs":461.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/integrations/connections"},"durationMs":475.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.14,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bad3f79e-bfb3-4ef2-9bdb-4f4313479978","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":86,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/integrations/connected-apps","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.93,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0fa685cf-020c-4498-8535-dd6ce606f939","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":52.49,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"caec0030-33d3-4b67-b425-2356a6cf94f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:32:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.49,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"947e7629-6039-4187-b187-eab571f07108","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:32:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":382.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":409.8,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.18,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"50a14bdb-054b-422e-84fe-0f4366046df8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"limit":20,"page":1},"error":"Unknown column 'KsseaReport.rank' in 'field list'","ip":"154.159.237.80","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.select (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async KsseaReport.findAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1140:21)\n    at async Promise.all (index 1)\n    at async KsseaReport.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listReports (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/kssea-reports.service.js:34:43)\n    at async listReports (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/kssea-reports.controller.js:6:45)","timestamp":"2026-08-30 10:32:40","url":"/api/v1/senior-secondary/kssea-reports","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":115.27,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/kssea-reports","requestId":"dbd0b189-bc40-45a3-a73a-aededee478a1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-08-30 10:32:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":284.15,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/kssea-reports/stats","requestId":"09546ec3-a8f7-44ab-a4fa-42e29dfd40df","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/senior/kssea-reports","navId":"1788075156423-625567","text":"KSSEA Reports"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/integrations/connected-apps","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/integrations/connected-apps","href":"/dashboard/senior/kssea-reports","navId":"1788075156423-625567","text":"KSSEA Reports","to":"/dashboard/senior/kssea-reports"},"durationMs":444,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/senior/kssea-reports","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/integrations/connected-apps","navId":"1788075156423-625567","to":"/dashboard/senior/kssea-reports"},"durationMs":457,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/senior/kssea-reports","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.39,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e0a6c045-f91a-40dc-8ec3-a40f35e28e54","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"limit":20,"page":1},"error":"Unknown column 'KsseaReport.rank' in 'field list'","ip":"154.159.237.80","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.select (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async KsseaReport.findAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1140:21)\n    at async Promise.all (index 1)\n    at async KsseaReport.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listReports (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/kssea-reports.service.js:34:43)\n    at async listReports (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/kssea-reports.controller.js:6:45)","timestamp":"2026-08-30 10:32:41","url":"/api/v1/senior-secondary/kssea-reports","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.42,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/kssea-reports","requestId":"81fc6f2d-538e-477f-8e22-ec2e2fa28c94","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-08-30 10:32:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/senior-secondary/kssea-reports"},"durationMs":448.8,"event":"API_ERROR","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/kssea-reports/stats"},"durationMs":702.7,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.54,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d1d86083-8e46-4939-8712-1bb95a8f2180","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/senior-secondary/kssea-reports"},"durationMs":366.4,"event":"API_ERROR","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.13,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aa186b8d-35aa-4f65-b627-97e4a04e03b6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":68,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/kssea-reports","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:44","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.77,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"28e1e5cb-c938-4ac9-98e1-71ef10c410ca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/payroll","navId":"1788075162779-980626","text":"Payroll"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/senior/kssea-reports","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/kssea-reports","href":"/dashboard/payroll","navId":"1788075162779-980626","text":"Payroll","to":"/dashboard/payroll"},"durationMs":799,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/kssea-reports","navId":"1788075162779-980626","to":"/dashboard/payroll"},"durationMs":799,"event":"NAV_STALL","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.68,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5ee53f85-2da0-4f81-a628-ed6d4d7fb344","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":77.65,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/runs","requestId":"ea7136f0-cf21-40a8-bf7d-091bfa244be0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":158.1,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/summary/8/2026","requestId":"d93b13c7-a0be-4bfb-bc9c-0ecf3d777fe6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/kssea-reports","navId":"1788075162779-980626","to":"/dashboard/payroll"},"durationMs":824,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/payroll/runs"},"durationMs":397.1,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/payroll/summary/8/2026"},"durationMs":489.4,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.97,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0a2c9e96-6dba-4de0-8327-44c987eb1c0b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/payroll?month=7&year=2026","navId":"1788075172451-838838","text":"View Payslips"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:32:57","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.63,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"17b54e86-aeb7-4d20-b038-0f977f137cf2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:32:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/payroll?month=7&year=2026","navId":"1788075175367-635150","text":"View Payslips"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:33:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.08,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"665bd1e2-48d0-432e-a61d-c5547dbfa510","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:33:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:33:00"}
{"data":{"href":"/dashboard/payroll?month=7&year=2026","navId":"1788075182075-795051","text":"View Payslips"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:33:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.07,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9ec7e1ce-e02f-4ac5-8377-45169e721874","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:33:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":78,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:33:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.23,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b3b274c0-fa2e-4818-99c2-f3d5d9b73cde","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:33:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/kra-compliance","navId":"1788075199120-112538","text":"Overview Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:33:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/payroll","href":"/dashboard/finance/kra-compliance","navId":"1788075199120-112538","text":"Overview Dashboard","to":"/dashboard/finance/kra-compliance"},"durationMs":621,"event":"NAV_PATH_CHANGE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/kra-compliance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:33:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/payroll","navId":"1788075199120-112538","to":"/dashboard/finance/kra-compliance"},"durationMs":621,"event":"NAV_STALL","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/kra-compliance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:33:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/payroll","navId":"1788075199120-112538","to":"/dashboard/finance/kra-compliance"},"durationMs":638,"event":"NAV_RENDER","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/kra-compliance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:33:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.09,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"97945708-919e-4949-a200-91cb7b258b1d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:33:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":332.01,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/kra-compliance/dashboard","requestId":"6b4307b8-66a6-4703-bfbf-2fe961b086ee","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:33:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/kra-compliance/dashboard"},"durationMs":659.6,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:33:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.82,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4ab31c39-2927-461d-aac3-b9ae69b49597","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:33:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":70,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/kra-compliance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:33:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.91,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"17008b69-dcc8-4dc5-ac70-ad08ba3fff93","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:33:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.7,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2e68f90b-e175-4181-80f3-734e4673da60","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:33:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":68.38,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b4c6ce90-e1bf-467b-bdaf-a3e0c25ede57","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:33:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":367.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:33:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":377.7,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:33:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.94,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cd0a72c1-8bd3-464f-80e2-8e42d84b799b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:33:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":22,"event":"UI_CLICK","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/kra-compliance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:33:57","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.07,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"da3b1b23-2d00-430e-aa97-2b91e47b10f0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:33:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:34:00"}
{"durationMs":2.27,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70727f62-5f47-49be-a05f-171dfdc179a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:34:02","userId":null}
{"durationMs":269.16,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"8ba53054-09da-430d-84f8-b5da0f3aea27","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:34:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":450.18,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"97261654-f7f9-4d8f-97f1-97e143bd3334","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:34:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":519.71,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"50875509-c6ff-4f4b-8937-9274e718c4e8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:34:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":573.66,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6019b036-7b5e-4749-b31c-bff000c3f726","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:34:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":579.94,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/kra-compliance/dashboard","requestId":"c29a9b9c-e8bd-45a7-8ed8-63a8c02bd2db","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:34:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":590.4,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:34:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":801.4,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:34:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":877.3,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:34:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":879,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:34:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/kra-compliance/dashboard"},"durationMs":915.4,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:34:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.02,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bebad44b-1ba9-4561-b98a-1e2c92198a34","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:34:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.18,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77b8cdde-9e9c-43eb-bf9e-b29f76f9a66f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:34:06","userId":null}
{"durationMs":137.46,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"9949af34-c40e-4601-b3fd-48c289b72022","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:34:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":211.9,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"29c3c17f-8b4b-44fa-894d-249435ff53ed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:34:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":217.39,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/runs","requestId":"de06e4b8-e082-47b8-9050-fd6d8195ed35","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:34:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":236.63,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0c2c4687-b8fe-492f-b887-698cf860c54c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:34:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":231.66,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c3891fac-f722-4089-bdca-1f36d9dd78f2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:34:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":214.14,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/summary/8/2026","requestId":"78e2fb1d-4740-47f2-8c98-d60578a6cac3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 10:34:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":459,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:34:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":568.9,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:34:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/payroll/runs"},"durationMs":573.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:34:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":652,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:34:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":653.2,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:34:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/payroll/summary/8/2026"},"durationMs":654.5,"event":"API_RESPONSE","ip":"154.159.237.80","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 10:34:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.26,"ip":"154.159.237.80","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ade83785-34ef-4895-8e78-8b439d619aa0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:34:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 10:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:35:00"}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"014f3b32-f9f8-468f-a5cf-f6a2b8cabbe8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 10:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:40:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5522ec70-2d22-471e-aabc-eb252d9a7bff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 10:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:45:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"79ed5136-2201-4e6b-a43a-a4e7652ef871","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 10:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:50:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e9559b25-f6b5-470b-9647-fd6d6b4e1f0d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 10:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:55:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04186b74-1260-4b47-9895-53189e33d980","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 10:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 10:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 11:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:00:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb72ef44-e567-4d40-bc6c-d69a1a9eaf50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 11:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 11:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:05:00"}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"abb8cd03-cd0e-43cf-bdfe-69eabe56c241","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 11:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 11:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:10:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4bc1a1ca-081b-497f-980f-2b26448954d0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 11:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 11:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:15:00"}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"290c5a1d-eea8-476d-aca5-50937b1b3167","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 11:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 11:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:20:00"}
{"durationMs":1.68,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e91bb3bd-3b64-4993-b263-9e3cdab58c12","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 11:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 11:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:25:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d2964e32-79dd-4381-900b-9567c70d4ec5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 11:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:26:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 11:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:30:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2fa9dd77-c347-4a6a-a391-fb7e8e772851","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 11:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:35:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1cbe03ff-d201-4038-badd-507d9043a734","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 11:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 11:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:40:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9a4e417c-72fa-4306-8c42-436988dad69c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 11:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 11:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:45:00"}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9bdec5db-beed-43c7-a650-626814699af6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 11:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 11:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 11:50:00","totalConnections":1}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"32a766ef-2921-40b9-8009-23a78e746710","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 11:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 11:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:55:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"31266e77-1edc-4fd4-822e-5be3b349b056","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 11:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 12:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:00:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4647e31-250a-48a7-a85e-03b17501b2d2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 12:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:05:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9a8bb58c-47f5-4f20-a008-2218d6cbd406","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 12:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 12:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:10:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bf30822c-97d2-4b8f-843d-e571c938defc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 12:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 12:15:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b669b993-4da3-491f-8917-269721d7274c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 12:15:13","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:15:17"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 12:15:19"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 12:15:19","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:16:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 12:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:20:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"442f9b67-2e0e-4c3a-96ba-f4e42277178b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 12:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 12:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:25:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ed48a26-d690-47d7-87c7-5f0bf3b11fff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 12:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 12:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 12:30:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f28653c1-5a5f-4e70-8e93-0e107e3b9d89","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 12:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:35:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"34080bed-704e-4f91-8037-118cb590a6fd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 12:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 12:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:40:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e6746a08-b471-4fff-a635-5dced1121431","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 12:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 12:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:45:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2dfcfca7-3991-403c-8656-8adeb983b1c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 12:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 12:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:50:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"85c7b833-be4c-4576-a9ff-032f453137b1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 12:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 12:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:55:00"}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c72ae0ec-048a-4905-9af6-5dc4ba2aa622","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 12:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 13:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:00:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0b684843-f71a-413c-824c-82b8965ed9aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 13:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 13:05:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b90d3d90-8e2b-41ce-b4b3-7cf63d59fb92","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 13:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:10:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a0b387fc-b791-4829-b99d-e2679ef8faa8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 13:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:15:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bed74e95-2fa9-44a4-bcf8-6472090fb586","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 13:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:20:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12df043b-e313-47ed-b8d5-1016e2613b51","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 13:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:25:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"54337354-5923-4620-a5a2-faf4232b2cea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 13:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:30:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad45618b-50d7-428f-9458-f75b18a12eb0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 13:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:35:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1cb6e886-0231-43d8-8963-1859189050f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:38:00"}
{"durationMs":1.42,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ba0d639-6f98-47f4-a1bf-3a5d62a92e62","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:38:28","userId":null}
{"durationMs":2.7,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/summary/8/2026","requestId":"ebb605d2-cd59-438b-b007-277824de2540","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:38:28","userId":null}
{"durationMs":1.22,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"c65a3d59-fecc-4618-b35b-9aca26ca3397","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:38:28","userId":null}
{"durationMs":0.78,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ce2e1d3e-c5c0-4bed-868a-cefdc291f3f9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:38:28","userId":null}
{"durationMs":0.79,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"d70d078c-a37a-4636-aefc-170e2539b584","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:38:28","userId":null}
{"durationMs":0.84,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/runs","requestId":"93454cad-c4c8-4bd7-aecb-e44c25e0fa19","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:38:28","userId":null}
{"durationMs":0.85,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"83ab6dd1-1c4d-43ba-9190-6ca9c019f2fd","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:38:28","userId":null}
{"durationMs":308.63,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"1e96a4f4-b528-4052-8832-d93745fd72e6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:38:29","userId":null}
{"data":{"method":"GET","status":401,"url":"/payroll/summary/8/2026"},"durationMs":428,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:38:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":432.9,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:38:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":436.3,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:38:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":438.7,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:38:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/payroll/runs"},"durationMs":439.4,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:38:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":441.1,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:38:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":320.19,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fac49fa9-1ff9-474c-a40e-76cc2e2bce31","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:38:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":426.47,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"000ebbb9-2800-48d3-a4b9-54d407512aeb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:38:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":545.33,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"dcca17fc-736a-4cc5-a9b9-27cf3d497f22","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:38:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":556.28,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"265135aa-790d-4cdb-8180-12fdbfc6f920","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:38:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":590.69,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/runs","requestId":"1b5a5e09-ff80-41ce-bb50-422d48609b80","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:38:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":604.65,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/summary/8/2026","requestId":"5f66d8c5-4fe9-40bf-a7c9-46a3d6bb6ba6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:38:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":596.29,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1a105b92-f0c5-4ea8-a728-bab9eddd2fff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:38:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1792,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:38:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1892.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:38:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1894.6,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:38:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/payroll/runs"},"durationMs":1944.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:38:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/payroll/summary/8/2026"},"durationMs":1992.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:38:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":2024.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:38:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.95,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e9bd3c34-8484-460c-bf47-e1abf1ccf775","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:38:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"PDF Export","name":null,"type":null},"durationMs":4,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:38:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.14,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ea5c52fd-22dc-42aa-a8e3-f1e45055f7c1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:38:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"PDF Export","name":null,"type":null},"durationMs":5,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:38:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.19,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ea251c81-cb9b-4da1-9178-181ec794f4f9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:38:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"PDF Export","name":null,"type":null},"durationMs":5,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:38:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.09,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5ffd5719-9737-4c95-91dd-65dc6d7f9896","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:38:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"PDF Export","name":null,"type":null},"durationMs":17,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:38:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.49,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b3cb84c8-19aa-47e7-8d2c-4eaffabc246c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:38:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:39:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":79,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.33,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0dd89633-0d4f-49ef-a5fe-9c13a8a54a3d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Access denied for user 'aereuxky_DrewGalowayDev'@'localhost' to database 'aereuxky_cbc_platform'","ip":"154.159.237.124","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"SequelizeConnectionError: Access denied for user 'aereuxky_DrewGalowayDev'@'localhost' to database 'aereuxky_cbc_platform'\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)\n    at async /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:174:32","timestamp":"2026-08-30 13:39:24","url":"/api/v1/help/quickstart","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Access denied for user 'aereuxky_DrewGalowayDev'@'localhost' to database 'aereuxky_cbc_platform'","ip":"154.159.237.124","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"SequelizeConnectionError: Access denied for user 'aereuxky_DrewGalowayDev'@'localhost' to database 'aereuxky_cbc_platform'\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)\n    at async /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:174:32","timestamp":"2026-08-30 13:39:24","url":"/api/v1/help/categories","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.63,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/help/quickstart","requestId":"71404ece-356c-4433-a41d-cec4f58b371c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":503,"timestamp":"2026-08-30 13:39:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":35.12,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/help/categories","requestId":"123edd55-eebe-4c1b-9b0a-f5e4c194aadf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":503,"timestamp":"2026-08-30 13:39:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/help","navId":"1788086359902-75434","text":"Help Center"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/payroll","href":"/dashboard/help","navId":"1788086359902-75434","text":"Help Center","to":"/dashboard/help"},"durationMs":687,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/help","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/payroll","navId":"1788086359902-75434","to":"/dashboard/help"},"durationMs":687,"event":"NAV_STALL","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/help","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/payroll","navId":"1788086359902-75434","to":"/dashboard/help"},"durationMs":706,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/help","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.34,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aacb9bba-c0a9-406d-8fda-13852960162b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Access denied for user 'aereuxky_DrewGalowayDev'@'localhost' to database 'aereuxky_cbc_platform'","ip":"154.159.237.124","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"SequelizeConnectionError: Access denied for user 'aereuxky_DrewGalowayDev'@'localhost' to database 'aereuxky_cbc_platform'\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)\n    at async /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:174:32","timestamp":"2026-08-30 13:39:25","url":"/api/v1/help/categories","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Access denied for user 'aereuxky_DrewGalowayDev'@'localhost' to database 'aereuxky_cbc_platform'","ip":"154.159.237.124","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"SequelizeConnectionError: Access denied for user 'aereuxky_DrewGalowayDev'@'localhost' to database 'aereuxky_cbc_platform'\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)\n    at async /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:174:32","timestamp":"2026-08-30 13:39:25","url":"/api/v1/help/quickstart","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":35.27,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/help/categories","requestId":"cc423092-6fbb-4664-b884-e2b1987e7bdc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":503,"timestamp":"2026-08-30 13:39:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":29.46,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/help/quickstart","requestId":"d50b21de-78eb-4dee-9140-6beda7f385a4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":503,"timestamp":"2026-08-30 13:39:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":503,"url":"/help/quickstart"},"durationMs":367.8,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":503,"url":"/help/categories"},"durationMs":377.5,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.69,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d90290fa-f6e2-4297-aac8-e68c4a492075","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":503,"url":"/help/categories"},"durationMs":389.9,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":503,"url":"/help/quickstart"},"durationMs":399.9,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.57,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6f88f37f-0abe-40f7-9440-3a9d66553848","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":60,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/help","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.85,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"761cdb20-acbc-40a8-abd4-b3377bee2511","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":44.53,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"41f913d1-75e1-448c-9f0c-09a3ac56a7d0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:39:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":113.11,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ac8bf122-bf1c-4202-89d4-08d9adff2da3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:39:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":395.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":424.6,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.93,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d602a651-e31f-4d34-86d1-109a44bcaf24","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":97.58,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/uniforms/items?page=1&limit=8","requestId":"70295995-0a83-4e30-a0c3-d53723ad4832","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":114.92,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/uniforms/dashboard","requestId":"5a25cf44-e491-4595-aa48-0daaf9310a19","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/uniforms","navId":"1788086372519-793692","text":"Uniforms"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/help","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/help","href":"/dashboard/uniforms","navId":"1788086372519-793692","text":"Uniforms","to":"/dashboard/uniforms"},"durationMs":567,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/uniforms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/help","navId":"1788086372519-793692","to":"/dashboard/uniforms"},"durationMs":567,"event":"NAV_STALL","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/uniforms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/help","navId":"1788086372519-793692","to":"/dashboard/uniforms"},"durationMs":585,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/uniforms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.17,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4332eba0-e62e-42ca-b2cd-a65fe1dd3a3c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/uniforms/items"},"durationMs":473.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/uniforms/dashboard"},"durationMs":490.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.45,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"38379ea8-e1d9-4497-ae0c-31b9e72f2995","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":52.44,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/uniforms/items","requestId":"62b7e262-1f46-4d29-8177-d1bf31b9a8e8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Stock","name":null,"type":null},"durationMs":14,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/uniforms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/uniforms/items"},"durationMs":513.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.51,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d40badb4-9bea-41ec-86ea-cecb3f9a387f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":35.62,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/terms","requestId":"a56d3902-6478-4fe9-91e6-c00cc682c7fd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:39:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":77.92,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/uniforms/purchases?page=1&limit=20","requestId":"2d7d8785-542f-4f21-9c65-686bcfc40e75","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.93,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/uniforms/purchases?termId=cmp8gtpme00d68bcnq5m8mk8x&page=1&limit=20","requestId":"b5c7f70c-8826-4cf5-a38c-d382857b73f5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Purchases","name":null,"type":null},"durationMs":88,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/uniforms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/terms"},"durationMs":405.6,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/uniforms/purchases"},"durationMs":433.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.21,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e289a8bc-6896-4230-8c15-9353602f1987","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/uniforms/purchases"},"durationMs":423.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.46,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"757c5141-b89c-4e6d-a7c9-0db13754cada","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":208.42,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/uniforms/report/order-list?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"f12d2ed7-c781-4843-9a9d-15e84bc63eee","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Order List","name":null,"type":null},"durationMs":19,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/uniforms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/uniforms/report/order-list"},"durationMs":582.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:39:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.11,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e316ee72-e950-40ed-824d-846672d2dc1c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:39:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Analytics","name":null,"type":null},"durationMs":29,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/uniforms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.66,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"79bdf010-644e-4f54-9794-0cd596169a5c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 13:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 13:40:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7183daeb-6623-4a2c-9c1a-3692f62e904e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:02","userId":null}
{"body":{},"error":"Access denied for user 'aereuxky_DrewGalowayDev'@'localhost' to database 'aereuxky_cbc_platform'","ip":"154.159.237.124","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"SequelizeConnectionError: Access denied for user 'aereuxky_DrewGalowayDev'@'localhost' to database 'aereuxky_cbc_platform'\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)\n    at async /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:174:32","timestamp":"2026-08-30 13:40:02","url":"/api/v1/help/quickstart","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Access denied for user 'aereuxky_DrewGalowayDev'@'localhost' to database 'aereuxky_cbc_platform'","ip":"154.159.237.124","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"SequelizeConnectionError: Access denied for user 'aereuxky_DrewGalowayDev'@'localhost' to database 'aereuxky_cbc_platform'\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)\n    at async /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:174:32","timestamp":"2026-08-30 13:40:02","url":"/api/v1/help/categories","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.31,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/help/quickstart","requestId":"05ceac4c-9f16-4757-9de3-4a10e9b68865","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":503,"timestamp":"2026-08-30 13:40:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":33.2,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/help/categories","requestId":"e39b39f6-3963-45bc-a260-b5138d09c7e2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":503,"timestamp":"2026-08-30 13:40:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/uniforms","href":null,"navId":null,"text":null,"to":"/dashboard/help"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/help","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/uniforms","navId":null,"to":"/dashboard/help"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/help","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":503,"url":"/help/quickstart"},"durationMs":354.7,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":503,"url":"/help/categories"},"durationMs":367.4,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.81,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5a858b0c-ef63-44f3-9e56-afa3c0fc9d0e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Access denied for user 'aereuxky_DrewGalowayDev'@'localhost' to database 'aereuxky_cbc_platform'","ip":"154.159.237.124","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"SequelizeConnectionError: Access denied for user 'aereuxky_DrewGalowayDev'@'localhost' to database 'aereuxky_cbc_platform'\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)\n    at async /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:174:32","timestamp":"2026-08-30 13:40:03","url":"/api/v1/help/quickstart","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Access denied for user 'aereuxky_DrewGalowayDev'@'localhost' to database 'aereuxky_cbc_platform'","ip":"154.159.237.124","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"SequelizeConnectionError: Access denied for user 'aereuxky_DrewGalowayDev'@'localhost' to database 'aereuxky_cbc_platform'\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)\n    at async /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:174:32","timestamp":"2026-08-30 13:40:03","url":"/api/v1/help/categories","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":39.24,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/help/quickstart","requestId":"9fa6ee75-2faf-4702-a701-6bf5de0a48d2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":503,"timestamp":"2026-08-30 13:40:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":35.16,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/help/categories","requestId":"3ed48f91-398a-4b14-887e-8b949f250331","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":503,"timestamp":"2026-08-30 13:40:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":503,"url":"/help/quickstart"},"durationMs":400.2,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":503,"url":"/help/categories"},"durationMs":396.1,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.23,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"da004c99-bbb4-407d-ba76-61ee6a3e89a1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":89.16,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/summary/8/2026","requestId":"af45112d-ed84-4fa0-83b9-03a73ccddb28","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:40:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":118.32,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/runs","requestId":"cccde887-51cc-4dab-a1c6-638b9b5fc6af","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:40:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/help","href":null,"navId":null,"text":null,"to":"/dashboard/payroll"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/help","navId":null,"to":"/dashboard/payroll"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/payroll/summary/8/2026"},"durationMs":444.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/payroll/runs"},"durationMs":462.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.99,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8376eca1-e387-4bdd-b40c-2cb331cfe0d7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":57,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.19,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9ffa4959-476b-4233-b6b0-071adf002ea6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":104.21,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/pathways/stats","requestId":"72dab0fb-1506-4adc-ac26-078f0f2c1ccd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:40:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":113.25,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/pathways","requestId":"97585303-ce6d-4760-91d7-323bfd8f4446","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:40:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/senior/pathways","navId":"1788086405504-945546","text":"Pathways"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/payroll","href":"/dashboard/senior/pathways","navId":"1788086405504-945546","text":"Pathways","to":"/dashboard/senior/pathways"},"durationMs":115,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/payroll","navId":"1788086405504-945546","to":"/dashboard/senior/pathways"},"durationMs":128,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/pathways/stats"},"durationMs":434.6,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/pathways"},"durationMs":437.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.83,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d0f5caa0-794c-44a7-916a-6fddaf628f40","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"New Pathway","name":null,"type":null},"durationMs":100,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.77,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4d0468c6-84dd-4fbd-90f9-2f64440876ba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Select category","name":null,"type":"button"},"durationMs":57,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.95,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d719ed38-b833-4a81-916b-20fa640552dd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Select category","name":null,"type":"button"},"durationMs":34,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.59,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f497a0b2-1a09-4f97-9500-6ecf5002eecd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Cancel","name":null,"type":"button"},"durationMs":24,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.79,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ffaa3074-ae0d-4e87-9fa4-23b7eabcba7f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":54,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.51,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"20e27f4f-2c77-4d26-b17c-c76a9c353851","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.2,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"6d1a01cd-6cb2-4add-8038-5ac817311870","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:40:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.74,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"c524863d-a656-4205-843b-297dfa856cb4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:40:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":469.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":411.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.67,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cada900c-e87c-4b60-8167-cd8f88432b60","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":153.5,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"e0caf759-958e-4b7a-b0e4-85855540a241","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":157.66,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"e2392b69-77f4-462f-98fd-4e8b0f66f57b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":399.53,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/payments?page=1&limit=20","requestId":"7941775a-9c3f-4ea4-9bef-180081ee3811","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:40:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":359.65,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/dashboard","requestId":"d46bfaa5-af34-4aa6-bc8d-f898d4f1778e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:40:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/invoices","navId":"1788086434216-848967","text":"Invoices & Reports"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/pathways","href":"/dashboard/finance/invoices","navId":"1788086434216-848967","text":"Invoices & Reports","to":"/dashboard/finance/invoices"},"durationMs":152,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/pathways","navId":"1788086434216-848967","to":"/dashboard/finance/invoices"},"durationMs":223,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":510.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":553.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.81,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3c818544-a793-4ec8-b5d7-ed9fed038cea","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1504.58,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?page=1&limit=20","requestId":"6b431f35-c557-4b07-84d9-8114bcdc7052","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:40:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/payments"},"durationMs":787.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/dashboard"},"durationMs":814.6,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.45,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4c8b5933-ad19-4abb-82e7-c8eff06eadb2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices"},"durationMs":1963.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.33,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3ea7eeff-87b6-4136-9626-ac9f2d246ebf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":61.46,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"685fd8bb-42b6-4318-8386-313a1d7c1f16","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Print / Save PDF","name":null,"type":null},"durationMs":10,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":417.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.56,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4ef76a11-4546-4503-8d25-fcf050f7a348","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.97,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"719f6b3c-fd53-4fb9-bf83-7b9a94e1d629","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Print / Save PDF","name":null,"type":null},"durationMs":13,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":456.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:40:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.94,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"85ad3bf7-47aa-47b9-8991-7cdedea65f6c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:40:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:42:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":78,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":40.76,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"04ac92b6-ce46-4336-911c-a7fd6bc3c127","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:42:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":361.52,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/teacher-assignments","requestId":"304f8970-07f6-406f-8ae2-a6893078dd48","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:42:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":346.05,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"fdd33b07-add0-4235-99f5-169f22264725","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:42:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":362.48,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"b34d7bb9-c2c1-47f6-9c88-bc8705164e72","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:42:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academics/subjects","navId":"1788086534078-25442","text":"Subjects"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/invoices","href":"/dashboard/academics/subjects","navId":"1788086534078-25442","text":"Subjects","to":"/dashboard/academics/subjects"},"durationMs":602,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/invoices","navId":"1788086534078-25442","to":"/dashboard/academics/subjects"},"durationMs":602,"event":"NAV_STALL","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/invoices","navId":"1788086534078-25442","to":"/dashboard/academics/subjects"},"durationMs":650,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":61.43,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"845bab4a-c46b-4e85-9711-365a9d32a873","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:42:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":464.95,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff/departments/list?type=academic","requestId":"c05ca760-03da-49d0-b494-63ee011b28fc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:42:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/teacher-assignments"},"durationMs":752.7,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":755,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1127.6,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff/departments/list"},"durationMs":1136,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.13,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5f60cb9c-ee45-431b-8714-ae0ba81bd2e8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:42:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":62.23,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"fd90f7db-4f16-496a-bd6a-ea990a1aedf4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:42:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.58,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"50b9567d-efe1-4018-91fb-c0e0ce35a068","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:42:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":426.6,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":400.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.94,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b6bba485-0af2-470d-ac3f-1dc738281631","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:42:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":45,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.14,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ccbaa430-9e92-44cd-92a7-274d7021ec1f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:42:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":64.26,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"676e637d-d599-42f9-8f3f-d450c52a6f69","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:42:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":93.4,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"81ab41a3-0dd4-42b8-8d97-99ab7dec25af","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:42:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":253.11,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/payments?page=1&limit=20","requestId":"ce5edfa2-364b-473d-b287-e6c70914bcb7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:42:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":380.13,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/dashboard","requestId":"5ea22c50-caf4-4db8-a6c5-da73359b76f8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:42:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":588.37,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?page=1&limit=20","requestId":"4dc7fbb8-6963-4c16-9cd4-680bcaa9e9bd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:42:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/subjects","href":null,"navId":null,"text":null,"to":"/dashboard/finance/invoices"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/subjects","navId":null,"to":"/dashboard/finance/invoices"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":427,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":471.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/payments"},"durationMs":668.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/dashboard"},"durationMs":773.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.36,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7eeecf2c-1da6-4404-a146-c16af8b0f814","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:42:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices"},"durationMs":994.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.64,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c068252f-239a-433d-bff1-8fcc127b7f3e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:42:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":54,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:42:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.91,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a890bbc5-04dd-4bfe-aa25-7019f51c66e6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:42:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:43:00"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":23,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.72,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"36db2d09-cc80-4c0b-984d-268b82794da9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.57,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a75751c-7486-4bbe-815d-48d6a81b7cf3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:05","userId":null}
{"durationMs":32.96,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms/current","requestId":"04757dbc-0d99-4741-a61b-cb331425df62","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":114.07,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"9cd902f5-3a51-4eed-a22f-6a4689f14a61","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:43:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":158.38,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"5a57dca6-07c9-464c-a9cf-f8ca0c3e872c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:43:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":149.85,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"72f656b0-6068-4462-abee-fe2de0f3aeae","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:43:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":166.33,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"43b057a9-70f9-4a51-b5d8-e9acb4e4c0de","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:43:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Teacher Portal","name":null,"type":null},"durationMs":81,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.77,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d53dbe6e-2523-4e15-ab5b-8627979c3cc5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":282.9,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"64ee6060-903b-4eb5-b917-7e29e5f8d7d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":287.22,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Sunday","requestId":"4bef8515-268c-416a-bb52-775457dfa921","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":439.92,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview","requestId":"8193c6c3-118a-44bd-83fd-427fac21a5fd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":67.7,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"d8d02503-9a5e-48fc-9053-c04f527203f0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":105.98,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/status","requestId":"a4d1e76e-6297-4352-ad99-fd20d87da6ce","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academic/terms/current"},"durationMs":397.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":505.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":568.7,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":618.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":624.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-streams"},"durationMs":653.6,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-schedule"},"durationMs":724.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/overview"},"durationMs":808.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/overview"},"durationMs":396.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.53,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"18aa1dc0-d78f-4836-9ded-57e4416be843","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/clocking/status"},"durationMs":438.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.97,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8841e950-205f-43f2-80e0-5cd877b44732","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/invoices","href":null,"navId":null,"text":null,"to":"/dashboard/senior/pathways"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/invoices","navId":null,"to":"/dashboard/senior/pathways"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.56,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b5b2c191-9093-4061-9510-46e7638f229d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":55,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.98,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8e77cf7b-8e52-420b-a45d-e51752121eb7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/fee-dashboard","navId":"1788086607310-692372","text":"Fee Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.51,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1ced7f85-eea9-47d5-afe4-9ea26dc1cafa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":94.28,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"2da090ba-6ec8-451c-9873-36aa5193dc92","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:43:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":362.98,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/debt-aging","requestId":"02f995f4-9438-4b90-9d6e-6a2db1215af3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":433.55,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/collection-velocity","requestId":"d7195b91-bf92-439c-9d13-c29bbee7144a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":413.99,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/payment-segments","requestId":"71df8bad-8322-4ce2-af4d-4c6912dc7918","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":423.17,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/forecast","requestId":"678f676d-5abb-449f-8a92-9edd72fa4114","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":452.17,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/dashboard","requestId":"d44c7335-d334-4669-b692-79b89e363c72","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:43:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/pathways","href":"/dashboard/finance/fee-dashboard","navId":"1788086607310-692372","text":"Fee Dashboard","to":"/dashboard/finance/fee-dashboard"},"durationMs":905,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/pathways","navId":"1788086607310-692372","to":"/dashboard/finance/fee-dashboard"},"durationMs":905,"event":"NAV_STALL","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/pathways","navId":"1788086607310-692372","to":"/dashboard/finance/fee-dashboard"},"durationMs":929,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":478.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/debt-aging"},"durationMs":719.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/collection-velocity"},"durationMs":785.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.51,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"79119f7e-c449-4c12-a020-e4b413de3fbe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.22,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"829f1717-7dd8-42ba-b5c5-2c910049edd6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:43:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.55,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"00a6cd91-b0d7-4679-8b6f-c87c7bc0aba4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:43:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/payment-segments"},"durationMs":805.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/forecast"},"durationMs":812.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/dashboard"},"durationMs":820.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":392.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":378,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.03,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7498ff9f-b7d8-4394-a8b6-c6486cb1d160","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.41,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"c3a0de1a-c987-4141-8d0e-fdb76454b264","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:43:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":166.68,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"0df536e8-0c37-4743-abd5-f241d14e1090","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":193.57,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"c413150f-dca3-44c9-8601-3760aad967b5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":175.01,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"ac57cd55-1935-4354-b8b1-0fe7384d7d62","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:43:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":215.48,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"b87f78f8-26fa-4374-ad18-2bfaa14e2471","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":151.78,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"c0744036-afe5-4b18-8985-954a77c5b0f9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:43:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":203.59,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"e5d3b0cc-d6a2-47c0-9ea1-742af5a177c7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":212.5,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"903f2be2-e803-4177-a343-4e4016dc7656","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1788086610231-255672","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-dashboard","href":"/dashboard","navId":"1788086610231-255672","text":"Dashboard","to":"/dashboard"},"durationMs":171,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-dashboard","navId":"1788086610231-255672","to":"/dashboard"},"durationMs":189,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":480.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":545.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":559.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":561.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":579.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":599.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.74,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"895cd237-3204-46b6-873b-b63134174632","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":610.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":612.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.03,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"04372ce9-bbd7-46a3-801c-1c4eb089f4b1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.86,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"e0d77f5a-6079-4346-bba9-c984a6964bf1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":76.52,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"4975b5e7-bf82-4054-98da-d0a3fde44d91","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:43:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.3,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/history?limit=1000","requestId":"7142956b-c242-43af-8fbf-91019091f454","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:43:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/communication/whatsapp","navId":"1788086617149-560451","text":"Open WhatsApp setup"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/communication/whatsapp","navId":"1788086617149-560451","text":"Open WhatsApp setup","to":"/dashboard/communication/whatsapp"},"durationMs":137,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788086617149-560451","to":"/dashboard/communication/whatsapp"},"durationMs":162,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":387.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":396.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/history"},"durationMs":402.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.24,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4b055790-ac9e-42c6-b84f-b885ddcb47fc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":34.58,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"45677abd-530c-4c40-b3c6-55c363ca61d1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:43:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":467.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.48,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"21d21a3a-a0ea-4e9e-ae0d-168bb9d29106","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.14,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"268a0b2c-ba6a-4fc3-bb8c-816bfce5ae6a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:43:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":375.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.25,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"687ecd08-4894-4551-bbe4-7b0c31afedf2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":32.02,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"092a5708-d812-43b1-ba66-eb584c0830e7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:43:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":393.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:43:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.94,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5879ecb5-6349-4af0-8c66-bcb7c3c93986","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:43:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:44:00"}
{"durationMs":58.61,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"cb131322-dcba-4aa5-a597-fb7c1321a94e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:44:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":418,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:44:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.46,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"db987e2c-23ce-4a9d-9b54-c389383f6876","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:44:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":64,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:44:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.91,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"63d71299-08c8-4ba5-90b1-b7661707902a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:44:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.46,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"217dcc76-292b-47be-ae2c-da283966e581","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:44:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":126.06,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"52b3ca07-27fc-448d-a288-3239a226c12a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:44:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":223.27,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/teacher-assignments","requestId":"fa07da97-76a0-44b2-8fde-1925dfea1cac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:44:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":242.76,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff/departments/list?type=academic","requestId":"2d38e265-d1f9-4015-851a-87b9f24f90f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:44:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academics/subjects","navId":"1788086644539-688526","text":"Subjects"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:44:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/whatsapp","href":"/dashboard/academics/subjects","navId":"1788086644539-688526","text":"Subjects","to":"/dashboard/academics/subjects"},"durationMs":138,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:44:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/whatsapp","navId":"1788086644539-688526","to":"/dashboard/academics/subjects"},"durationMs":225,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:44:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":398.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:44:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":478.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:44:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.02,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"008f5874-a420-4f6f-9bc9-35ba6dc88576","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:44:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/teacher-assignments"},"durationMs":668.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:44:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff/departments/list"},"durationMs":787.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:44:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.35,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"da613c39-c7fc-4076-a059-e6b44d1e2c0b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:44:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 13:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:45:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e3f2edfa-c6fb-4759-a318-6e48aa595644","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:46:00"}
{"durationMs":1.83,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"833cb4ac-1dda-4f89-9d26-853a88b80f8c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:43","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":74,"event":"UI_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 13:46:55","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":null}
{"durationMs":0.93,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0ed1378f-196b-4c10-a4d3-01d593935269","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:55","userId":null}
{"durationMs":774.23,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"6f3c1590-2bc8-4067-af28-0afffbb1fc3c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:56","userId":null}
{"durationMs":61.26,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"8d3dfcb9-b4e1-4672-86aa-25372766b0ac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":83.84,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"70d714d8-374d-4a69-9f45-136410188190","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":54.6,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"a5a897fe-8183-449c-9831-9c137a83f650","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":119.02,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"9874905e-542f-4316-a542-e36d10f2ecba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.38,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"82cb4cbe-d8d1-4c76-a286-25a9c996c656","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1722,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:46:57","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:46:57","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:46:57","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":430,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:46:57","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.21,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e29355f0-fc1e-4f98-9f3f-eac2e39d3909","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.02,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"cc9c2439-169b-45ae-842a-7860df33a7cd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.12,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"7dbfe8ba-c383-46a0-a271-f786afacb0a0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":98.4,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"15d0203d-9da5-49a5-944f-4475830310f5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":80.35,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"c583b6d1-ef83-47af-a1cb-5056eef32fef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":73.55,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"fc24b8b2-80c0-4a5a-bda2-b6723705f766","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":297.47,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"db240f5a-a09a-46b3-a9ec-15881bbab077","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":338.9,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"0f30424d-add7-4d6f-a845-3e48045df09a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":428.68,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"abd3c2ae-2da8-4ded-8c82-01f2843d379c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":422.28,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"c2eb199c-2eca-41f0-9c2a-651f8d14e1b8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":145.67,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"dae2de76-bdda-4016-a00d-e845709a14fa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":427.57,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"0bb24eed-6d75-41c5-952a-86d9f0bec79f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":471.08,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"2ccb9ba5-6259-4e0c-bdb6-7b0962e4f022","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":186.81,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"3c001a60-f074-4b4c-82f8-1e8aaa8cdb7c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":480,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:46:59","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":507,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:46:59","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":515,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:46:59","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1397,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:46:59","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1049,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:46:59","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1054,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:46:59","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1057,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:46:59","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":1415,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:46:59","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1065,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:46:59","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.88,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ed915014-01d1-4e4e-b535-d619efcc7250","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:46:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":673,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:00","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":763,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:00","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":807,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:00","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":832,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:00","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":834,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:00","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1033,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:00","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1035,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:00","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1177,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:00","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.9,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7d3b7ed3-ea8e-4e01-bf73-efe666fccc56","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:47:00"}
{"durationMs":37.71,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"dd2df313-8ed5-4b54-928b-62e5973ffee9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:47:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/settings/payment-gateway","navId":"1788086823686-143871","text":"Open payment gateway"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:07","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/settings/payment-gateway","navId":"1788086823686-143871","text":"Open payment gateway","to":"/dashboard/settings/payment-gateway"},"durationMs":757,"event":"NAV_PATH_CHANGE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/settings/payment-gateway","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:07","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788086823686-143871","to":"/dashboard/settings/payment-gateway"},"durationMs":757,"event":"NAV_STALL","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/settings/payment-gateway","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:07","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788086823686-143871","to":"/dashboard/settings/payment-gateway"},"durationMs":849,"event":"NAV_RENDER","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/settings/payment-gateway","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:07","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.2,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"01047dd3-a7df-45fc-a441-11e1d54db57f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":386,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:08","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.1,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2ca250af-e4a3-42ee-a712-d79a7cd6f1ad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings/payment-gateway","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:26","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings/payment-gateway","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:26","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.86,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"23ec76c8-6297-408f-b5d8-523b78c08473","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1788086852333-317111","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:36","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.99,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0ae49b54-7c23-4eb5-a194-999fe4364629","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":70.59,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"1fa4e215-3c7f-41bf-b9af-3179650c1893","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":124.94,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"5420d37a-52c8-45c1-ba65-01269bcc4806","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.65,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"c57ddc4c-2759-4045-b36c-ef69d2854b0d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":104.65,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"f2596df7-224c-4f90-94cd-9f4c94304ef0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1788086854092-604064","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:38","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/students","navId":"1788086854092-604064","text":"Students","to":"/dashboard/students"},"durationMs":155,"event":"NAV_PATH_CHANGE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:38","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788086854092-604064","to":"/dashboard/students"},"durationMs":404,"event":"NAV_RENDER","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:38","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":423,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:38","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":467,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:38","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.28,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"675f29b5-c9b4-41f9-9bc4-f56e3ff7db3f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":731,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:39","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":731,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:39","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.01,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5c9292ac-f98d-454a-a5d7-40e967f3089c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"ID Cards","name":null,"type":null},"durationMs":43,"event":"UI_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:50","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.85,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"88fd4366-de6b-45f1-a5b0-3c4fb690da25","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.49,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"c80307b0-9ddb-4623-8f3c-e57676f3c9df","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":123.21,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students","requestId":"759e97ea-bf0a-4ccd-b326-44d23bd92e4f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":395,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:52","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":462,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:52","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.73,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4c90da2d-f63c-49e2-afb5-d02ce555646d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"POPauline OdhiamboADM-2025-0091","name":null,"type":null},"durationMs":33,"event":"UI_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:56","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.48,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"87cb8662-8383-4a43-8021-f9cc7a1dfad4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"POPauline OdhiamboADM-2025-0091","name":null,"type":null},"durationMs":3,"event":"UI_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:57","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"POPauline OdhiamboADM-2025-0091","name":null,"type":null},"durationMs":4,"event":"UI_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:57","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.26,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"865cf168-5674-4b66-afd0-574fc40b71ee","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":110.77,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"eaf68c89-2a1c-484d-9965-8e453ee7bcda","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:47:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":93.04,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ec507ba0-14fd-4507-89fc-1632a74d40ac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:47:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":454,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:59","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":451,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:47:59","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.31,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d57376d1-3217-4c36-b32d-0fbad44961e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:47:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:48:00"}
{"durationMs":110.18,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"449b091f-0391-4db4-99d4-393777562530","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":139.88,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10&status=TRANSFERRED","requestId":"510ee322-2729-4b3d-abc1-ea6a1df7f461","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Transferred","name":null,"type":null},"durationMs":161,"event":"UI_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:04","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":581,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:04","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":595,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:04","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.51,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d83b32b6-2ed5-4b54-981e-7b737c5587b0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":68.21,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"06f5cb44-2d98-4243-865d-cc7a6250dc39","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:48:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":110.64,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"7dfba6b4-428e-46b6-bb88-0ec4a276b852","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":72.64,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"a4ba1882-c6df-4659-97b1-d6d8caff0a94","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:48:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":67.53,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"e1d6ab22-8d16-4082-9dc5-c1d35e60c136","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:48:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1788086884121-653695","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:08","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","href":"/dashboard","navId":"1788086884121-653695","text":"Dashboard","to":"/dashboard"},"durationMs":361,"event":"NAV_PATH_CHANGE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:08","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":"1788086884121-653695","to":"/dashboard"},"durationMs":941,"event":"NAV_RENDER","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:08","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":577,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:08","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.68,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cfd0f2c8-df2e-48b2-8949-9e9f7114ea48","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":583,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:09","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":751,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:09","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":756,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:09","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.1,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"915789f8-ec33-42d0-8593-b91584a2c9ea","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":122,"event":"UI_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:26","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.72,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bbd50774-1edd-4a9a-88c1-d77e2758266e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academics","navId":"1788086910740-361370","text":"Grades & Streams"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:34","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.2,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"25ce39cc-d096-4807-be21-aaf6dc81f3ea","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.75,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"76afec81-7b90-4c33-92a0-79f782480a52","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/academics","navId":"1788086910740-361370","text":"Grades & Streams","to":"/dashboard/academics"},"durationMs":1089,"event":"NAV_PATH_CHANGE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:35","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788086910740-361370","to":"/dashboard/academics"},"durationMs":1089,"event":"NAV_STALL","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:35","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788086910740-361370","to":"/dashboard/academics"},"durationMs":1186,"event":"NAV_RENDER","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:35","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":417,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:35","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.14,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dd147e38-8a34-42de-80fb-1ebc50d1dadd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.38,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"5677a142-1ca1-4246-be35-0625bb974b08","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53.64,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"e9872c6d-a69b-4e44-b144-c1b72f41995f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Add Grade Level","name":null,"type":"button"},"durationMs":397,"event":"UI_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:40","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":409,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:40","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":410,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:40","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":43.81,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a3fa9774-41c5-467c-ab2b-a8a64d36d417","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Select an existing grade to copy...","name":null,"type":"button"},"durationMs":139,"event":"UI_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:45","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.93,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"458f0d41-31f8-43dc-acdd-f3b1bcde74b1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Close","name":null,"type":"button"},"durationMs":200,"event":"UI_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:50","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.55,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1c4e02f7-5b87-48bf-872d-e7726b688d00","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":108,"event":"UI_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:51","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.16,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9c203cbd-97b2-449f-9fd7-00854a17d5d3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":183.52,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/pathways","requestId":"575ce949-6359-435d-a34b-018bdd85d673","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":177.48,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/pathways/stats","requestId":"a220eead-44a6-4fb4-b4df-556c4733cf12","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/senior/pathways","navId":"1788086934029-242150","text":"Pathways"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:58","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics","href":"/dashboard/senior/pathways","navId":"1788086934029-242150","text":"Pathways","to":"/dashboard/senior/pathways"},"durationMs":771,"event":"NAV_PATH_CHANGE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:58","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics","navId":"1788086934029-242150","to":"/dashboard/senior/pathways"},"durationMs":771,"event":"NAV_STALL","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:58","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.02,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"395289dd-5292-46d8-a01e-b99ec8f9b4c6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics","navId":"1788086934029-242150","to":"/dashboard/senior/pathways"},"durationMs":805,"event":"NAV_RENDER","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:58","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/pathways"},"durationMs":570,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:58","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/pathways/stats"},"durationMs":577,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:48:58","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.31,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1f6cb58c-9dab-4ea5-a854-505209f1bd26","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:48:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":79.03,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"8d2d17fe-727d-44db-8f98-9859253b0a5b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:48:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.21,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"8771a110-4b16-41d2-96e2-0b466f89012c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:48:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":441,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:00","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":416,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:00","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.05,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8bc2bc67-8eb3-456a-b778-546d2561cd60","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:49:00"}
{"data":{"id":null,"label":"All Categories","name":null,"type":"button"},"durationMs":125,"event":"UI_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:06","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.04,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d572a8da-a829-49a4-bc15-6736d05f0ba9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":96,"event":"UI_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:10","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":34.31,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e6929a25-ad4a-4df4-b019-0ab9dee5ee3e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/kra-compliance","navId":"1788086961382-932285","text":"Overview Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:25","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"51fa39b6-48ca-4148-8b6d-f86b6c5d275e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":111.71,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/kra-compliance/dashboard","requestId":"1e26433b-d81c-4756-8089-d8b76ca103a0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/pathways","href":"/dashboard/finance/kra-compliance","navId":"1788086961382-932285","text":"Overview Dashboard","to":"/dashboard/finance/kra-compliance"},"durationMs":898,"event":"NAV_PATH_CHANGE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/kra-compliance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:26","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/pathways","navId":"1788086961382-932285","to":"/dashboard/finance/kra-compliance"},"durationMs":898,"event":"NAV_STALL","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/kra-compliance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:26","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/pathways","navId":"1788086961382-932285","to":"/dashboard/finance/kra-compliance"},"durationMs":916,"event":"NAV_RENDER","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/kra-compliance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:26","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/kra-compliance/dashboard"},"durationMs":484,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:26","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.67,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b2fad2eb-8f2d-44c0-8036-b9146cd3d506","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":91,"event":"UI_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/kra-compliance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:33","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ae2c00ce-b87c-4563-bcff-dd000ec55b43","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"HR","name":null,"type":null},"durationMs":29,"event":"UI_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/kra-compliance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:38","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.75,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e91a0ebf-40c0-47c0-97b4-08b43760f3d7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/inventory","navId":"1788086980957-841382","text":"Inventory"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/kra-compliance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:45","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.89,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"24595404-0ab4-4c6d-994c-713d3eba732a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":184.14,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/stats?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"c0f9ff90-5576-4321-82ca-d508a1c4d24c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":154.04,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/transactions?limit=10&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"889b2a0a-4917-43c3-9510-0325513d64dd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":191.79,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/purchase-orders?limit=5&sortBy=createdAt&sortOrder=DESC&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"00405d1a-92fd-493f-921c-8326c6b03310","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":142.87,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/items?lowStock=true&limit=10&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"2d3a6c86-f502-4e45-b2dc-b562fd941da3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":182.74,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/items?limit=10000&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"01bf4a2a-e603-4720-a4ec-d26d3edd230d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/kra-compliance","href":"/dashboard/inventory","navId":"1788086980957-841382","text":"Inventory","to":"/dashboard/inventory"},"durationMs":876,"event":"NAV_PATH_CHANGE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:45","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/kra-compliance","navId":"1788086980957-841382","to":"/dashboard/inventory"},"durationMs":876,"event":"NAV_STALL","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:45","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/kra-compliance","navId":"1788086980957-841382","to":"/dashboard/inventory"},"durationMs":935,"event":"NAV_RENDER","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:45","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/stats"},"durationMs":538,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:45","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/transactions"},"durationMs":725,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:45","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/purchase-orders"},"durationMs":754,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:45","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.43,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"95f94816-c5a5-4843-b591-a11075296937","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/items"},"durationMs":867,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:46","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/items"},"durationMs":883,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:46","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.34,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"043e9919-391b-406a-a15f-1c4021abd716","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":87,"event":"UI_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:52","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.62,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0bb55cac-1ccd-4a87-bccb-fe2af734c70c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/clocking","navId":"1788086992739-141905","text":"Clocking"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:57","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.16,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"46acdbd8-2fff-49ea-af1f-3ccd741512be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":75.15,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/staff-log?page=1&limit=20&date=2026-08-30","requestId":"7d9ac80e-25ee-4873-8b43-71281a3fbe4d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53.89,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/daily-stats?date=2026-08-30","requestId":"e790c878-0bb1-437b-a26e-ef9e13728e4d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/inventory","href":"/dashboard/clocking","navId":"1788086992739-141905","text":"Clocking","to":"/dashboard/clocking"},"durationMs":1907,"event":"NAV_PATH_CHANGE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:58","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/inventory","navId":"1788086992739-141905","to":"/dashboard/clocking"},"durationMs":1907,"event":"NAV_STALL","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:58","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/inventory","navId":"1788086992739-141905","to":"/dashboard/clocking"},"durationMs":2045,"event":"NAV_RENDER","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:58","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/clocking/staff-log"},"durationMs":426,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:58","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/clocking/daily-stats"},"durationMs":694,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:49:58","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.21,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e62dbcbd-de64-47a8-97f7-ec0b7e2c3aaa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:49:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":63.49,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b8eb0c56-13b1-4c2b-81df-79ea35e25b02","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:49:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":69.84,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f9b782c8-a0f4-4c4d-b220-b99d7c8cb3af","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:49:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":404,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:50:00","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":414,"event":"API_RESPONSE","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:50:00","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.58,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"099e36f1-dc2f-4fae-af55-4696bbaad530","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:50:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 13:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 13:50:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9f3fb7f4-c64f-4830-ad38-ae189845803f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:50:02","userId":null}
{"data":{"id":null,"label":"QR Code Scanner","name":null,"type":null},"durationMs":48,"event":"UI_CLICK","ip":"154.159.237.251","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:50:08","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.49,"ip":"154.159.237.251","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d0b3d038-f632-4ea5-9782-79bfde356b22","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:50:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 13:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:55:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"13128283-4315-4028-a98c-6e0762186e41","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 13:59:00"}
{"durationMs":2.08,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b959d4b8-9a67-4bae-979c-b57b39bad0e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:59:36","userId":null}
{"durationMs":1.67,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"e3770d20-8b7f-440e-8208-b459c475c08e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:59:37","userId":null}
{"durationMs":1.1,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"5b366a4b-b5e6-4f50-8a36-1a75d2cb9437","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:59:37","userId":null}
{"durationMs":0.94,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"4e5fbab8-a7f7-4be9-b7b9-6866a0f4bb38","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:59:37","userId":null}
{"durationMs":0.85,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"ee4e4b56-c7d3-46d5-b288-3701069e6a45","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:59:37","userId":null}
{"durationMs":2.8,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"ec726cb6-7154-4998-9565-3029498e4ee4","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:59:37","userId":null}
{"durationMs":2.21,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"d8370523-fb1b-4f94-9cfb-63bc6cb81522","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:59:37","userId":null}
{"durationMs":1.88,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"0f005c9f-43eb-4dfa-88bf-17eeb7521ba4","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:59:37","userId":null}
{"durationMs":1.87,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"fb68607c-190a-4e46-b0e7-6296c47a6d32","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:59:37","userId":null}
{"durationMs":1.53,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"bde437f7-4b56-41ff-9db6-2121ba23371f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:59:37","userId":null}
{"durationMs":0.82,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"605e169b-5da0-42a5-a921-c2f361045d34","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:59:37","userId":null}
{"durationMs":3.07,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"891a602e-dbf6-497c-bc6e-7b32774726ec","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:59:37","userId":null}
{"durationMs":1.88,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"80ed6641-9ebe-4903-8023-91bb179dd8a4","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-30 13:59:37","userId":null}
{"durationMs":94.18,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"57041f61-ebc6-428b-9288-956de6050811","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:59:37","userId":null}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 13:59:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 13:59:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":369.9,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 13:59:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":380.3,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 13:59:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":382.6,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 13:59:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":383.9,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 13:59:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/dashboard/stats"},"durationMs":394,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 13:59:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/school/mpesa-config"},"durationMs":401,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 13:59:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/dashboard/recent-activities"},"durationMs":404.5,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 13:59:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/dashboard/revenue-trend"},"durationMs":408.1,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 13:59:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/dashboard/attendance-trend"},"durationMs":411.6,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 13:59:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/dashboard/grade-distribution"},"durationMs":414.9,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-08-30 13:59:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":4.9,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b0e2c31e-d8c6-4012-ba55-14164667a299","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:59:37","userId":null}
{"durationMs":580.84,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"dca089ee-5207-4c93-847e-51d13f23c4b3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:59:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":512.89,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"02239ca3-346f-44f6-9cf0-2e36351db9d6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:59:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":752.43,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"5ce1f6e0-8135-4307-8c11-99a8ca6d668e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:59:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":788.38,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"14893d9c-5543-4220-a64e-5cf74759a5b0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:59:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":776.24,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ccfcac33-0e76-4d37-9fbc-e4a21b7b3642","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:59:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":789.68,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"f64aeb74-28a2-436d-aa51-71663766846b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:59:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":804.1,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"dd3ae597-cd52-4201-9d93-c60d0a9f817b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:59:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":795.33,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"166715e6-8990-479a-8b4d-4a9e0159b479","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:59:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":760.87,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"9f3d624a-c7fa-4475-9683-2e9207647d05","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 13:59:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communications/sms/settings"},"durationMs":620.7,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:59:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communications/whatsapp/status"},"durationMs":623.7,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:59:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.74,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"897c7a71-dbf9-4f33-b3d0-55e6c5c30902","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:59:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":828.69,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"5e9ccba3-dcb5-4a7e-938b-e338d8e0daf1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:59:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":799.04,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"ba8fd868-7cba-4ac6-a9b5-185837a76e4b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:59:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":795.05,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"d9e93757-4ced-477e-b26c-97da7b18843c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:59:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1138.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:59:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1149.7,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:59:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1238.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:59:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1318.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:59:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1331.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:59:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1332.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:59:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1349,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:59:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1350.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:59:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1351.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:59:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1356.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:59:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1356.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:59:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1357.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 13:59:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.79,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b5879c2d-b7cb-4361-b977-413c64b4698c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 13:59:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 14:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 14:00:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7dac3cb8-c53a-4ff5-bf26-f26d5d7fdbe0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:02","userId":null}
{"durationMs":0.87,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a83d356-c707-432b-9867-5523bf50f846","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:03","userId":null}
{"durationMs":394.19,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"be67a9cc-38b7-474a-b255-c241737df335","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:00:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":293.15,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"84317a52-aff0-4737-b708-7ecfcfa05ae9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:00:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":625.79,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"caa87b62-c18f-42bd-ae34-6ff763786bca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":947.77,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"2a266071-977d-4000-8375-14d29d8a55e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:00:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":942.35,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4caaf22d-4609-4db5-baf5-aaad507c65ce","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:00:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":946.94,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b533877b-c543-4417-9f77-38d69fa028a7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:00:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":688.77,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"78cc2135-a25b-469f-8e37-17d46e23ad6c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:00:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":701.06,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"8b792794-b865-4445-8988-28f799d27800","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:00:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":767.2,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"08382f86-b98b-4387-9ac6-b65fb99342be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":806.92,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"82833510-9fcc-42a8-a601-68e7480b2b9d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":737.49,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"1afc4693-3d4c-494a-9dd1-8a9d625882a4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":998.13,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"02331529-39b6-4adf-bcab-86eac557912b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":761.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":805.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1049.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1327.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1329,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1331.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1257.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1268.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1270.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1372.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1373.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1511.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.98,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2e5b3e1a-0ae2-47d1-b88e-b9f5e9d7503e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":70,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.83,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a1b5acbf-ab67-44c3-8686-cc5794464578","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"ACADEMIC","name":null,"type":null},"durationMs":16,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":37.66,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3fe0156a-8ba0-45ad-ae36-a2eece234430","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"ACADEMIC","name":null,"type":null},"durationMs":24,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.07,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c98095b3-d34d-4c40-8836-5fca1c9bc6e8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"ACADEMIC","name":null,"type":null},"durationMs":17,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.82,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6cb50911-34b1-4cd6-99dd-b665cb3eb7a4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"ACADEMIC","name":null,"type":null},"durationMs":19,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.53,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2f3a38db-850f-4d85-84c4-57b10e2aed7d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":23,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.1,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4cb4ba58-63db-415e-b63f-47cc028f6623","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":82,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.42,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c6922b97-30fa-406c-9018-bcb39c9c9e4b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"ASSESSMENTS & RESULTS","name":null,"type":null},"durationMs":18,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":29,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"baef770c-8115-42ea-91dc-a6c5500384f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":168.08,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/integrations/connectors","requestId":"fb9b731d-74b3-4d17-9b90-82bf95af1c51","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:00:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":168.75,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/integrations/connections","requestId":"c0e6d257-37fb-4cab-89d6-31e294f77b50","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:00:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/integrations","navId":"1788087643970-410544","text":"Integrations"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/finance/integrations","navId":"1788087643970-410544","text":"Integrations","to":"/dashboard/finance/integrations"},"durationMs":130,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/integrations","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788087643970-410544","to":"/dashboard/finance/integrations"},"durationMs":165,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/integrations","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","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":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/integrations/connected-apps","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/integrations","navId":null,"to":"/dashboard/finance/integrations/connected-apps"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/integrations/connected-apps","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.09,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"266cb53c-a9a2-40b2-86a6-3c1df5ff7167","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/integrations/connectors"},"durationMs":503,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/integrations/connections"},"durationMs":570.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:00:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.28,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"66910b22-636f-47cf-b279-0911d7ac495b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:00:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:01:00"}
{"durationMs":197.81,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/integrations/staging?page=1&limit=20","requestId":"9051cb92-f8b9-4f3c-9bef-ef827f1e14e8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Import Queue","name":null,"type":null},"durationMs":13,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/integrations/connected-apps","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 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":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/integrations/import-queue","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 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":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/integrations/import-queue","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.64,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2e57cac7-621e-46f6-a4e9-8385daa14ed2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":70.25,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ba6fc69c-1747-45ad-aba3-1aff0516e882","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:01:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":67.74,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b4eae9a7-29cc-49f8-9954-e730f88a54bc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:01:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/integrations/staging?page=1&limit=20"},"durationMs":556,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.83,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6ab7a3d4-ecc5-41dd-9836-8d4442cb2ee2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":450.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":446.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.35,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e892dcc7-f560-4826-9c71-e7fd02217024","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":62.27,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance/settings/bank-matching","requestId":"9b7243ae-2c78-4e43-8ac4-b5e9d6552dc1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":69.75,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/integrations/connections","requestId":"57298322-d1c8-460c-b83d-fc05c5309a6e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:01:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Bank Connections","name":null,"type":null},"durationMs":11,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/integrations/import-queue","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/integrations/import-queue","href":null,"navId":null,"text":null,"to":"/dashboard/finance/integrations/bank-connections"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/integrations/bank-connections","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/integrations/import-queue","navId":null,"to":"/dashboard/finance/integrations/bank-connections"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/integrations/bank-connections","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.4,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9fd09b85-7f0e-4ff3-afb2-d8b4646b4d2a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/finance/settings/bank-matching"},"durationMs":434.7,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/integrations/connections"},"durationMs":440.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.08,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b6cece62-4530-4283-895a-d778b4f01412","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":55,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/integrations/bank-connections","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.69,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bf609dbb-8854-4f15-a890-52894221f42b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":83.55,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"168bcf0d-4111-4ab7-adb0-679a743e6adb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":96.87,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"0884792d-eb4d-4dbf-bf01-5db93a7af0a7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/attendance","navId":"1788087681033-626115","text":"Attendance"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/integrations/bank-connections","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/integrations/bank-connections","href":"/dashboard/attendance","navId":"1788087681033-626115","text":"Attendance","to":"/dashboard/attendance"},"durationMs":540,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/integrations/bank-connections","navId":"1788087681033-626115","to":"/dashboard/attendance"},"durationMs":540,"event":"NAV_STALL","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/integrations/bank-connections","navId":"1788087681033-626115","to":"/dashboard/attendance"},"durationMs":560,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":42.29,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a480c8ce-10bc-4ffa-b4f3-3b3fb0ee842c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":478.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":509.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.31,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3e62f02b-0c57-4649-94f5-9547afff1d60","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Select class","name":null,"type":"button"},"durationMs":114,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.8,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f6f8372b-b539-4593-b724-f1cc42756f42","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.91,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams?gradeLevelId=cmp8gtpp300dw8bcn5mkl54sm","requestId":"83c74bc3-3c44-463a-b56a-d6b604aaa6a2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":108.98,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?classId=cmp8gtpp300dw8bcn5mkl54sm&limit=100","requestId":"560b1110-c569-4fac-837b-c36e7a65a2fb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":404.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":488.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.98,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3579948e-b1bc-45df-96f4-6dedc45cedcd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Select stream","name":null,"type":"button"},"durationMs":47,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.46,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"435210c1-f865-40a7-b336-188137bb74a6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.39,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?classId=cmp8gtpp300dw8bcn5mkl54sm&limit=100&streamId=cmp8gtpt100f28bcngeu70ogh","requestId":"8969f5e6-78c7-4688-aded-944009850f85","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":445.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.03,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"88eb0731-6835-4cfc-8a47-c06d9a9df6c8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Morning Roll Call","name":null,"type":"button"},"durationMs":49,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.95,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"af470eb6-10d0-4417-b1ef-23526c61908e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"East","name":null,"type":"button"},"durationMs":55,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.44,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c287dd66-cc2e-47fa-af7f-3690b6eb0d45","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Grade 9","name":null,"type":"button"},"durationMs":83,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.83,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"76bd829f-7b53-49ff-addb-03d8e147180a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":39.38,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams?gradeLevelId=cmp8gtpns00di8bcnjev1n79g","requestId":"eb598d88-4e2b-4a05-b1e6-53a81c3c2e89","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":145.21,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?classId=cmp8gtpns00di8bcnjev1n79g&limit=100","requestId":"8ff798dd-c846-4c6b-a9ab-cd52ef708f42","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":456.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":568.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Select stream","name":null,"type":"button"},"durationMs":89,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:01:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.93,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b1ff6bd2-6570-4732-bbf4-d15b73153692","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:01:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:02:00"}
{"data":{"id":null,"label":"Absent","name":null,"type":null},"durationMs":29,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.25,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"64fcac7e-157c-4725-a2a5-cb2646f506f5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":129.38,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"8d4065a7-5fd3-4104-8abf-8cde7f7f0ac4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:02:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":157.58,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e27f2ccf-93d9-43e0-b29d-9536f5af1b7d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:02:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":557.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":581.7,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.51,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ac03b48c-4478-46e1-bb22-573a96f2dd88","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Late","name":null,"type":null},"durationMs":25,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.89,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"24820b80-cfe5-4d73-8a60-581d2f954b73","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Excused","name":null,"type":null},"durationMs":23,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.92,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0b6a1340-cffb-4093-97e4-84342adf3d7a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Late","name":null,"type":null},"durationMs":35,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.47,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c001fd79-a703-4f45-8550-0460259d38a2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Absent","name":null,"type":null},"durationMs":26,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.17,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"35bfabd6-638e-4d7e-9596-a7455a93a395","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Late","name":null,"type":null},"durationMs":22,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.6,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d032f538-dd52-43b6-b4e8-9e42e5292054","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Absent","name":null,"type":null},"durationMs":27,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ce521dd0-4f16-49fc-95f5-589c5f8c034a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Late","name":null,"type":null},"durationMs":24,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.33,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"03f57c5c-21c3-4e02-a5aa-8d02c4ff4251","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Excused","name":null,"type":null},"durationMs":44,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.68,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d5c3d5bf-8520-4e98-b16a-b25e45390722","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Late","name":null,"type":null},"durationMs":21,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.1,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ff39ffc7-f2c6-4847-a9c7-10e118021fd6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Absent","name":null,"type":null},"durationMs":29,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.51,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c4ca7272-9d95-4aeb-bc3d-e07ba0f91399","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":122.66,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"510efcef-d0fe-4478-8f66-631f19f6326a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":118.49,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"cafdee9c-72d5-408c-8ed1-6a135dd228a2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":211.94,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/attendance/sessions?date=2026-08-30","requestId":"b417cda5-6c1e-4f57-b34f-c3d9d125b0dd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"History","name":null,"type":null},"durationMs":41,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":783.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":788.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.56,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c97c5ba9-77fd-4493-9c8b-cb224c179660","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/attendance/sessions"},"durationMs":900,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.93,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"34cdf1b3-e87f-4b57-9077-5c787288a3bf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"All classes","name":null,"type":"button"},"durationMs":59,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.12,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8a6eed15-6b34-4046-817d-9c020f89cf7b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.54,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams?gradeLevelId=cmp8gtpnd00de8bcnm4rg41ey","requestId":"391eed2d-f8d4-4063-a397-1c56babc91ef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1279.7,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"PP2","name":null,"type":"button"},"durationMs":54,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:02:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.88,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fff4a63f-de4a-4c56-a6ae-08b300fa558d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.22,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams?gradeLevelId=cmp8gtpns00di8bcnjev1n79g","requestId":"4f1e64b9-42c4-405f-ac09-283d8c9a3d94","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:02:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:03:00"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":842.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:01","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.03,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"83e463e9-41c7-418c-ba05-68cc2ed27c64","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"All streams","name":null,"type":"button"},"durationMs":47,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.78,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e90c2e9d-ba3b-4f91-b3f8-91f975eac4ef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":245.2,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/attendance/sessions?date=2026-08-30&streamId=cmp8gtpqj00ea8bcnq69n39ph","requestId":"ad9cf10d-a1ab-45cf-afb0-59451a35d7c3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/attendance/sessions"},"durationMs":869.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.03,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"31662311-3b03-4908-9d0f-51a666a09575","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"East","name":null,"type":"button"},"durationMs":44,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.03,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0bcff5aa-833c-4dea-b4a7-1b23532a94e2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.51,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/attendance/sessions?date=2026-08-30&streamId=cmp8gtpqp00ec8bcn39sa2wea","requestId":"f5a6c023-26f9-4b28-a713-090591d848b8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.52,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0b372529-56e4-47ef-9be4-b81a409afed0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:03:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.96,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c0733e2c-16da-465d-a56e-28658db32969","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:03:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/attendance/sessions"},"durationMs":427.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":422.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":424,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.62,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ad55469a-b8ee-4c43-8097-dd3a1f1e8db2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Grade 2","name":null,"type":"button"},"durationMs":51,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":29.24,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5acc2bff-b5b6-482f-8524-6a9e6b6bf76c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.64,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams?gradeLevelId=cmp8gtpn400dc8bcnf8rxynpl","requestId":"58ee16b2-6f05-47ea-8c29-dfa2820a89ce","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":412.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"PP1","name":null,"type":"button"},"durationMs":56,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.57,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"25fd1378-3f52-4df3-bd14-e0bd03bb886c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.97,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams?gradeLevelId=cmp8gtpnd00de8bcnm4rg41ey","requestId":"e95f9878-e551-44c3-bcd7-31eb841c5592","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":842.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"PP2","name":null,"type":"button"},"durationMs":60,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.94,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b1461074-b9fa-4bff-b27a-71b4bf48fc13","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.08,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams?gradeLevelId=cmp8gtpnl00dg8bcnt1kx3mrd","requestId":"c47d7b96-1fc2-46cf-b7d1-ef0be9b93170","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":436.7,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Grade 1","name":null,"type":"button"},"durationMs":60,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.81,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"de447252-ae77-4e6c-b549-d93a38f38859","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.74,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams?gradeLevelId=cmp8gtpns00di8bcnjev1n79g","requestId":"0bb445ce-a146-48b2-be51-66b6c81d7cfe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":568.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":44.86,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d3be176c-eecb-4c32-ad8a-cf8d206aadbc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.21,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"f63acf8c-af69-49cf-a0b6-64dddd58a47c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":76.57,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"d6acd8f0-8206-476b-9e4b-d70396a3425e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Reports","name":null,"type":null},"durationMs":34,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":652.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":660,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.95,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"648474f1-bbb5-4667-96fc-b41fd60c18d5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"-- Select Form --","name":null,"type":"button"},"durationMs":61,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.43,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d9bf98a9-779d-4622-8f15-0cfbbc54fa5d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.73,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams?gradeLevelId=cmp8gtpns00di8bcnjev1n79g","requestId":"784d1438-fea3-4c4b-b61f-a9aafe79faac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":441.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"-- All Streams --","name":null,"type":"button"},"durationMs":50,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.16,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1adf0de9-3066-450d-8cf4-122a1b615060","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Pick a date","name":null,"type":"button"},"durationMs":121,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.12,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4780e0df-35c8-4159-9481-44a696067c24","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":47,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.86,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"044f3f3c-f46b-49dc-8ccc-0d590af70595","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":190.94,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/academic-years","requestId":"100ee54c-b927-4b1e-9459-94ab88c4917b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":278.04,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/rooms","requestId":"489bb912-fedf-44a2-a631-3b869d420ada","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:03:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":310.47,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"a956aebf-9b10-4e9a-9aff-cdc020432647","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":546.2,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff?role=TEACHER&limit=100","requestId":"265bf368-4096-483c-8271-1f2af45b0359","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable","navId":"1788087822149-725692","text":"Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/attendance","href":"/dashboard/timetable","navId":"1788087822149-725692","text":"Timetable","to":"/dashboard/timetable"},"durationMs":200,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/attendance","navId":"1788087822149-725692","to":"/dashboard/timetable"},"durationMs":235,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/academic-years"},"durationMs":583.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.92,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"71f1eaa5-c088-4949-89bb-461779876025","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/rooms"},"durationMs":667.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":686.7,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff"},"durationMs":1167,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.52,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1bd5f124-f7ae-481c-a6e1-ef0af5a5e510","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"By Teacher","name":null,"type":null},"durationMs":29,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.69,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e8a28815-8d27-4cd9-866e-389c33a539f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":122.84,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/timetables/master-view","requestId":"41bc2dc5-8a9b-45f6-bdd7-46f33f84596b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:03:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":119.18,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/settings/school","requestId":"54a01671-0df9-4c97-8bda-ac4d533e1a6b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Master View","name":null,"type":null},"durationMs":27,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/settings/school"},"durationMs":493.7,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/timetables/master-view"},"durationMs":499.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.98,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0b2ff522-65ac-4e4c-ae96-fedfd9c64916","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Workload","name":null,"type":null},"durationMs":22,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.04,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8318a025-3bd2-4c6b-8c68-16fe195247c8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.86,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/settings/school","requestId":"1f053c44-1f27-4704-be43-272ff38ab96b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":118.54,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/timetables/master-view","requestId":"6fc687f0-bb89-493d-8b6b-9bae3c30a1da","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:03:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Master View","name":null,"type":null},"durationMs":169,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/settings/school"},"durationMs":412.6,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/timetables/master-view"},"durationMs":480.6,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:03:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.57,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"51c60344-6437-4b86-ab58-427012fa4795","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:03:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:04:00"}
{"durationMs":60.03,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d38db514-30ab-4513-8322-3b15c6d3af59","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:04:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":76.83,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e01bb3a5-5e9d-4fda-a131-a6bb089815fb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:04:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":458.6,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:04:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":491.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:04:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.72,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"110ec0a8-2758-4e62-b2e0-7e70105ec40c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:04:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"By Teacher","name":null,"type":null},"durationMs":53,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:04:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.35,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"be55c682-1a2e-421a-a814-667548497e39","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:04:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Select teacher","name":null,"type":"button"},"durationMs":89,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:04:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.06,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"77f7d007-06c5-4584-90a3-4c9793884f7c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:04:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":140.86,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/timetables/master-view","requestId":"af53d991-b7a1-459c-a4e1-adba9bff1e0e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:04:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/timetables/master-view"},"durationMs":525.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:04:36","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.86,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e7800016-1e48-4985-8728-afd64ab4eb70","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:04:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Export PDF","name":null,"type":null},"durationMs":7,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:04:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.04,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5b09629d-639f-4c72-aa3b-96a437f1881f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:04:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 14:05:00"}
{"data":{"id":null,"label":"Export PDF","name":null,"type":null},"durationMs":12,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:05:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.68,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b0d018e6-88e0-4a17-8521-f6ce205012e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:05:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 14:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:05:00"}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dc6395ab-7f9a-4575-a687-30e914664cd0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:05:01","userId":null}
{"data":{"id":null,"label":"Print","name":null,"type":null},"durationMs":16,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:05:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.32,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"18e20f7e-4754-48bb-a386-3a17e921c979","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:05:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":201.98,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e472f389-c301-439c-a976-d25185b1e58e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:05:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":208.34,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"97725b26-d6eb-4db5-8276-fad568577e1a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:05:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":689.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:05:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":691.7,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:05:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.51,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fe205348-46c7-4411-a9cd-efeea65dde68","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:05:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":154.66,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/timetables/master-view","requestId":"11f5d23f-9cbd-4203-af61-14955ea5a10c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:05:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":147.12,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/settings/school","requestId":"24e08e81-a67b-4520-a7fd-957bf04cb657","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:05:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Master View","name":null,"type":null},"durationMs":187,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:05:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/timetables/master-view"},"durationMs":628.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:05:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/settings/school"},"durationMs":635.6,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:05:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.49,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aa6453fc-85dd-43ef-a400-3b01c40661b9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:05:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Workload","name":null,"type":null},"durationMs":23,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:05:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.23,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9ebcdb82-58af-4b92-b017-dbecf29ffaf4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:05:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"By Room","name":null,"type":null},"durationMs":33,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:05:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.96,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"87415250-8a42-4bb1-addd-fd1d755f0c83","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:05:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Quality","name":null,"type":null},"durationMs":17,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:05:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.16,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"53008495-5d0f-4953-9a3a-23922a24d341","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:05:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"By Room","name":null,"type":null},"durationMs":27,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:05:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":32.85,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3f174f29-68e5-4760-9b48-e58e25fac9af","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:05:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Current Version","name":null,"type":"button"},"durationMs":63,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:05:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.31,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"656cf108-ff88-4333-b143-abca5be2e75b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:05:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Customize Design","name":null,"type":"button"},"durationMs":38,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:05:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.27,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3e437b03-61db-4410-94e4-a603374ad917","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:05:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Select room","name":null,"type":"button"},"durationMs":105,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:05:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.3,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e876e9f3-99cd-4ca4-beb3-9d4490106c5b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:05:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Select room","name":null,"type":"button"},"durationMs":87,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:05:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.88,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"558e0671-e399-438c-ac3b-f313c5e463ba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:05:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":240.7,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/rooms/35c11a3e-d62b-46ed-8dcf-23c1ece160f1","requestId":"37ff3193-6663-48d2-9cd9-59c0cac4ad7e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:05:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":238.07,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/timetables?roomId=35c11a3e-d62b-46ed-8dcf-23c1ece160f1","requestId":"47319c9f-7a50-4d15-abe9-9b3843aef653","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:05:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/rooms/35c11a3e-d62b-46ed-8dcf-23c1ece160f1"},"durationMs":689.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:05:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/timetables"},"durationMs":1109.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:05:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.47,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a1fe6171-1cd2-4fb5-9311-b307787c398a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:05:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:06:00"}
{"data":{"href":"/dashboard/timetable?tab=lesson_card","navId":"1788087961457-676604","text":"Lesson Card"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.3,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e850487c-02ee-4c05-adf2-6253ad73f91d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.91,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/timetables/setup/periods","requestId":"be462c44-6f6d-4dcd-a601-e0584cdcc733","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:06:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable/setup","navId":"1788087969136-994026","text":"Timetable Setup"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","href":"/dashboard/timetable/setup","navId":"1788087969136-994026","text":"Timetable Setup","to":"/dashboard/timetable/setup"},"durationMs":78,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/timetable/setup","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","navId":"1788087969136-994026","to":"/dashboard/timetable/setup"},"durationMs":102,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/timetable/setup","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/timetables/setup/periods"},"durationMs":421.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.09,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8af8f4af-98c7-4beb-8c43-52ce295b8233","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":122.59,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"5caaeb4f-c1df-4e51-80d5-214f701ad27a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:06:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":133.01,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9e1d53df-708f-4327-8937-dd174eb73957","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:06:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":561.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":558.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.43,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f3a37d42-b8ea-4a42-95fc-4fccd0c84552","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":106.57,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"b285dffc-af98-470f-82af-e92a5f317e8d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":146.95,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"ae32344f-f7d7-4b64-a115-55f0bd778614","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":159.16,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/terms","requestId":"418c28d6-7df9-41e5-85a6-87801bdcdba7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:06:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":306.33,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"41487570-0a19-4d7f-b8bc-1642d2d0470f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":351.47,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/teacher-assignments","requestId":"4b69ee06-00c8-434e-8563-1741834b2a4b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":501.12,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff?role=TEACHER&limit=100","requestId":"1363224a-5d76-461b-b445-44944e8d9d56","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable/builder","navId":"1788087980728-161136","text":"Build Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable/setup","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable/setup","href":"/dashboard/timetable/builder","navId":"1788087980728-161136","text":"Build Timetable","to":"/dashboard/timetable/builder"},"durationMs":202,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/timetable/builder","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable/setup","navId":"1788087980728-161136","to":"/dashboard/timetable/builder"},"durationMs":271,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/timetable/builder","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":519.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":543.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.31,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b06bf8a7-9cb1-41f2-9b33-d3ad207272e5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/terms"},"durationMs":582.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":837.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/teacher-assignments"},"durationMs":916.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff"},"durationMs":1179.7,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.8,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"081fd3ae-4fc8-4243-9096-eda8d0a581d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":53,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable/builder","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.27,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"726f98b4-1aef-4dc2-bd80-f4dc71152e89","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":45,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable/builder","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.01,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"65ba85c7-555d-46c1-ac7d-5513d40027e6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":70.01,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/rooms","requestId":"e484f5c5-7930-4fbd-8d03-6cda37e28bf8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:06:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":90.92,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/academic-years","requestId":"9b674ee4-66b0-4b95-a801-7a9b7a179113","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":98.89,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"ca6a50ac-41c0-45d2-ac89-e31b1edee53c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable","navId":"1788087993922-236378","text":"Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable/builder","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable/builder","href":"/dashboard/timetable","navId":"1788087993922-236378","text":"Timetable","to":"/dashboard/timetable"},"durationMs":89,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable/builder","navId":"1788087993922-236378","to":"/dashboard/timetable"},"durationMs":121,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/rooms"},"durationMs":469.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/academic-years"},"durationMs":476.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":489.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.68,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"02daebd6-559e-4a2c-af7c-49db0bbaa47e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":44,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.6,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5dda0373-2ee9-4d63-b6c7-cf8d387f849a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academic/calendar","navId":"1788088012642-274870","text":"Calendar & Sessions"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:57","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.85,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"19e8e6f0-06b7-4d56-82c6-905f59ccdac0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":144.8,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"098aa40e-e7ee-4271-8933-3d913d949e38","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:06:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":280.49,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/events?startDate=2026-07-24T21:00:00.000Z&endDate=2026-09-07T20:59:59.999Z","requestId":"5ab0fe7e-71d1-4daa-9d73-5614881bf7ab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":355.8,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/holidays?year=2026","requestId":"d5acfd34-8135-4d3a-aed5-4966a5d93001","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":363.14,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/summary","requestId":"fa0ed8de-32f4-4c3e-87d6-21c15f51f759","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","href":"/dashboard/academic/calendar","navId":"1788088012642-274870","text":"Calendar & Sessions","to":"/dashboard/academic/calendar"},"durationMs":840,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","navId":"1788088012642-274870","to":"/dashboard/academic/calendar"},"durationMs":840,"event":"NAV_STALL","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","navId":"1788088012642-274870","to":"/dashboard/academic/calendar"},"durationMs":863,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":573.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/events"},"durationMs":658.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/holidays"},"durationMs":765.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/summary"},"durationMs":783.7,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:06:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.99,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cfefd385-a113-4202-83f8-9fedc371645d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:06:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:07:00"}
{"data":{"id":null,"label":"Academic Years & Sessions","name":null,"type":null},"durationMs":39,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:07:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.67,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"279500f2-0ff4-4aba-80b1-970faf3ae0fb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:07:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Events & Activities Manager","name":null,"type":null},"durationMs":53,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:07:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.08,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"055d8330-8d29-4528-9fde-dca84441270b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:07:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":103.13,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"00fd3e55-c0d9-4a54-bf7e-3fbd3e1b678e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:07:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":176.58,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"69a64466-8def-40aa-96fc-480958450899","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:07:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":559,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:07:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":570.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:07:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.27,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8f5bd268-9447-4ede-94ba-fff3cc1c637c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:07:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Parent Day","name":null,"type":"button"},"durationMs":8,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:07:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.04,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"74c7405d-632b-497e-8d06-979bd6a6a28c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:07:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Holiday","name":null,"type":"button"},"durationMs":6,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:07:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.23,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b4828a37-2ece-4be7-82c7-90beb796d12b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:07:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":48,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:07:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.12,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"be58de3f-c660-4ee7-9cbb-3909d29ba02f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:07:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.66,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/kra-compliance/etims","requestId":"4ac68d18-f129-4763-9ccd-8a87c65e01ee","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:07:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/kra-compliance/etims","navId":"1788088072390-330520","text":"eTIMS & PIN Management"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:07:57","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academic/calendar","href":"/dashboard/finance/kra-compliance/etims","navId":"1788088072390-330520","text":"eTIMS & PIN Management","to":"/dashboard/finance/kra-compliance/etims"},"durationMs":88,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/kra-compliance/etims","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:07:57","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academic/calendar","navId":"1788088072390-330520","to":"/dashboard/finance/kra-compliance/etims"},"durationMs":111,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/kra-compliance/etims","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:07:57","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.54,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"723fc210-efda-40b9-9664-1194cc61be63","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:07:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/kra-compliance/etims"},"durationMs":980,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:07:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.34,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"638f23a4-dd5d-4d04-b6cf-6df18f67469a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:07:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:08:00"}
{"durationMs":61.38,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/kra-compliance/pin-tcc","requestId":"3a2b55e0-d404-473c-9e2a-938b0be2ba64","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:08:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"School PIN & TCC","name":null,"type":null},"durationMs":10,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/kra-compliance/etims","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/kra-compliance/pin-tcc"},"durationMs":543.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.61,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"31d53daa-fd5a-4f07-8afb-b9a2da75bde8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:08:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":110.17,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b81b2e43-044a-4be9-8867-9e7051963f41","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:08:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":117.59,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f4d4896b-b04e-4b0d-bc98-1b431c1b6305","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:08:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":506.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:19","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":522.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:19","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.67,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"61b9ced5-0ca1-4540-bc28-f99db4d6e550","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:08:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":41,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/kra-compliance/etims","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"eee9d525-40df-4798-a9b4-c323439c2f51","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:08:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":317.59,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/stats","requestId":"fa14ddba-ab8c-4497-97eb-000aa8ae234d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:08:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/health","navId":"1788088105869-889066","text":"Health"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/kra-compliance/etims","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/kra-compliance/etims","href":"/dashboard/health","navId":"1788088105869-889066","text":"Health","to":"/dashboard/health"},"durationMs":67,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/health","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/kra-compliance/etims","navId":"1788088105869-889066","to":"/dashboard/health"},"durationMs":84,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/health","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 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":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/nurse","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/health","navId":null,"to":"/dashboard/nurse"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/nurse","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.38,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8d5e57cf-1aa9-4362-8ef1-460d471cd71d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:08:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":449.4,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/records?limit=100","requestId":"3c415be0-3879-4aec-876a-b68326f0fe1b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:08:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":540.57,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/vitals?limit=50","requestId":"3ab6cb67-7ce6-45b6-a34b-2033774784d4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:08:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/health/stats"},"durationMs":693.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/health/records?limit=100"},"durationMs":852.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/health/vitals?limit=50"},"durationMs":1081.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.69,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"de2f00d4-aa15-4b74-8aad-1fcfc21c93a5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:08:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/health","navId":"1788088131354-551177","text":"ImmunizationsVaccine tracking"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/nurse","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/nurse","href":"/dashboard/health","navId":"1788088131354-551177","text":"ImmunizationsVaccine tracking","to":"/dashboard/health"},"durationMs":49,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/health","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/nurse","navId":"1788088131354-551177","to":"/dashboard/health"},"durationMs":75,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/health","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 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":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/nurse","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/health","navId":null,"to":"/dashboard/nurse"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/nurse","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:08:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.46,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"976ca87b-851b-4317-be8e-68fca56037cd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:08:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:09:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":50,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/nurse","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:09:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.68,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"df48f472-003e-4dbe-9f44-bcdbc067542b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:09:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":138.98,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/career-guidance/stats","requestId":"6599bf62-07d7-4670-9431-786c46047428","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:09:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"limit":20,"page":1},"error":"Unknown column 'counselor.photoUrl' in 'field list'","ip":"154.159.237.124","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.select (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async CareerGuidanceSession.findAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1140:21)\n    at async Promise.all (index 1)\n    at async CareerGuidanceSession.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listSessions (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/career-guidance.service.js:45:44)\n    at async listSessions (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/career-guidance.controller.js:6:46)","timestamp":"2026-08-30 14:09:16","url":"/api/v1/senior-secondary/career-guidance","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":165.68,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/career-guidance","requestId":"961d47a7-c6a6-4096-86f1-2522468a8f9d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-08-30 14:09:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/senior/career-guidance","navId":"1788088152239-943038","text":"Career Guidance"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/nurse","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:09:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/nurse","href":"/dashboard/senior/career-guidance","navId":"1788088152239-943038","text":"Career Guidance","to":"/dashboard/senior/career-guidance"},"durationMs":105,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:09:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/nurse","navId":"1788088152239-943038","to":"/dashboard/senior/career-guidance"},"durationMs":119,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:09:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/career-guidance/stats"},"durationMs":500.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:09:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/senior-secondary/career-guidance"},"durationMs":510.8,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:09:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.83,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a4b5ce9c-153d-45ee-9bdd-c3580b7c4a43","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:09:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"limit":20,"page":1},"error":"Unknown column 'counselor.photoUrl' in 'field list'","ip":"154.159.237.124","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.select (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async CareerGuidanceSession.findAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1140:21)\n    at async Promise.all (index 1)\n    at async CareerGuidanceSession.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listSessions (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/career-guidance.service.js:45:44)\n    at async listSessions (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/career-guidance.controller.js:6:46)","timestamp":"2026-08-30 14:09:17","url":"/api/v1/senior-secondary/career-guidance","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":63.93,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/career-guidance","requestId":"8b742de9-2513-431c-9aa6-04e7b3c57c25","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-08-30 14:09:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/senior-secondary/career-guidance"},"durationMs":482.3,"event":"API_ERROR","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:09:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.17,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"92df4c78-5dc3-4699-af13-555ce6b9a0ba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:09:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":125.94,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"667e94c7-1355-4ee0-bb3a-97ed201c5bce","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:09:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":123.58,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f845e408-ab82-4841-81cf-35dcac9ae74c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:09:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":497.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:09:19","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":505.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:09:19","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.63,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a9c8ef2f-3b2d-49ea-9925-f875f53acce5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:09:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":46,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:09:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.09,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"01f2283d-9e89-4817-b5c9-cafffe02c086","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:09:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"ACADEMIC","name":null,"type":null},"durationMs":13,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:09:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.5,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c9bf979a-4628-444a-86a1-fb7d350f2157","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:09:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"ACADEMIC","name":null,"type":null},"durationMs":12,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:09:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.25,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c9bba707-76aa-4ae6-a7b9-92508f0e2101","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:09:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"ASSESSMENTS & RESULTS","name":null,"type":null},"durationMs":13,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:09:36","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.93,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"267a099b-a67e-419d-8c6a-89636effc7ff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:09:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":28,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:09:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":42.91,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c86e3313-5164-4e14-bae5-a8a0604ddd01","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:09:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 14:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:10:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6c4f8f25-bb4c-42f0-bcc9-9d9fcf0e28dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:10:02","userId":null}
{"data":{"id":null,"label":"Rose","name":null,"type":null},"durationMs":46,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:10:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":34.66,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"319125c0-0324-4e9b-ab5e-f0eac59c8599","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:10:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":11,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:10:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.98,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"024a0db8-eaec-43b9-9df4-e660fd6b2417","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:10:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Blue","name":null,"type":null},"durationMs":19,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:10:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.74,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2836a5d6-efd5-45ab-9cdf-7b66b7d60027","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:10:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Cyan","name":null,"type":null},"durationMs":19,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:10:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.18,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d1f33f3e-24a0-4ecc-8a6e-6583a560b6d5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:10:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"System","name":null,"type":null},"durationMs":23,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:10:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.41,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"56b8d798-32ca-4606-82a4-04547ca4addd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:10:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"System","name":null,"type":null},"durationMs":15,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:10:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.08,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fd9d4a4d-bbb0-4207-972b-ba1ff7d826a4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:10:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Light","name":null,"type":null},"durationMs":36,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:10:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.42,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"540df35e-f0e9-4cf6-b5b8-6947cc96e579","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:10:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"System","name":null,"type":null},"durationMs":64,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:10:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.61,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fba4fec2-9f07-4387-8e07-cacb94c201bb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:10:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":206.66,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"03bf6901-f7c9-4dd3-8d6d-27130fd69527","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:10:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":245.08,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1971bd05-2dac-43a0-ada5-dee363626c89","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:10:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Dark","name":null,"type":null},"durationMs":15,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:10:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":571.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:10:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":614.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:10:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.93,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a8361b8d-46d1-4b9a-83a9-6c1f7b02589a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:10:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Light","name":null,"type":null},"durationMs":24,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:10:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.49,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6af7ebc0-fcba-4e1e-9e77-e6ad8b6ccc7a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:10:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":53,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:10:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.85,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"102f252f-454a-4f68-93df-e833cfe3cde8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:10:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:11:00"}
{"data":{"href":"/dashboard/leave","navId":"1788088256737-69428","text":"Leave"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:11:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/career-guidance","href":"/dashboard/leave","navId":"1788088256737-69428","text":"Leave","to":"/dashboard/leave"},"durationMs":820,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/leave","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:11:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/career-guidance","navId":"1788088256737-69428","to":"/dashboard/leave"},"durationMs":820,"event":"NAV_STALL","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/leave","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:11:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":70.79,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8c65208b-89a7-4e13-882f-0254d92c54f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:11:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":157.52,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/leave?page=1&limit=20","requestId":"a787a8f1-3d33-46b8-9200-6dcf9a6c89f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:11:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":301.08,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/leave/balances/summary","requestId":"abccb1bf-f0ba-4114-9b00-38fc289b5a4e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:11:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/career-guidance","navId":"1788088256737-69428","to":"/dashboard/leave"},"durationMs":873,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/leave","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:11:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/leave"},"durationMs":1662.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:11:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/leave/balances/summary"},"durationMs":1779.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:11:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.48,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5c6ee188-19f3-49a7-9228-064de02e1587","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:11:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":48,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/leave","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:11:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.05,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b24b71dc-c505-4585-ab9d-280a1ffdc79a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:11:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.78,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9251e93c-e0b5-4668-a4e2-0a47cbc2d1cd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:11:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":155.63,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"89dc6a50-dc91-4247-a536-53468078ca66","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:11:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":458.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:11:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":545.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:11:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.52,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c7da2680-26a8-4d20-afeb-e0b75db90c1d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:11:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.75,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/leave/my-balances","requestId":"74d53991-c2b1-4883-a88a-9b38a0a5ccc7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:11:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/leave/new","navId":"1788088281442-662631","text":"New Request"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/leave","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:11:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/leave","href":"/dashboard/leave/new","navId":"1788088281442-662631","text":"New Request","to":"/dashboard/leave/new"},"durationMs":466,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/leave/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:11:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/leave","navId":"1788088281442-662631","to":"/dashboard/leave/new"},"durationMs":484,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/leave/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:11:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.52,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9824be37-3b9d-4523-8c03-ea7741f30a2b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:11:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/leave/my-balances"},"durationMs":421.6,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:11:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.01,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2f8a096b-627d-4208-8c52-642787919f8b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:11:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Select leave type","name":null,"type":"button"},"durationMs":56,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/leave/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:11:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.31,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"373920ce-2b83-4523-8a11-949207ae23b2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:11:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":49,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/leave/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:11:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.81,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"19957959-28f8-4915-b8c0-a0f142c1046d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:11:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:12:00"}
{"durationMs":66.1,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"16c0c254-ff2d-458b-a83f-d5c9cba6052d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:12:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":73.55,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"88e0124b-de71-4b58-8e24-739a5cd3d255","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:12:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.32,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"19097a89-c9af-4986-a6db-c6d8b7c5d489","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:12:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":97.37,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10","requestId":"9ad66cba-30a4-4692-95f3-b35c0f08e826","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:12:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":77.65,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"0b711ffe-33ee-4753-bdd2-8e43c7cab37e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:12:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/assessments/exams","navId":"1788088317484-695046","text":"Exams"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/leave/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/leave/new","href":"/dashboard/assessments/exams","navId":"1788088317484-695046","text":"Exams","to":"/dashboard/assessments/exams"},"durationMs":99,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/leave/new","navId":"1788088317484-695046","to":"/dashboard/assessments/exams"},"durationMs":151,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":449.6,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":467.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":488.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":525.7,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.92,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8fde5d34-43b1-44a1-a608-02bc82a7e767","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:12:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":448.3,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.38,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e8e2d095-40fc-4660-9b1a-2721387e1ece","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:12:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":119.87,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0fcd8fb8-7172-4fb8-8462-7cad8ab4f937","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:12:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":49.25,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"eebae772-c9e6-4170-b599-0e8b97cff3b5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:12:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":514.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":447.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.32,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b9a488d9-6d37-4bd8-ac41-7fec97ffc44f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:12:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":50,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.71,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4a5ab304-ec0c-4053-b12d-6000ab42f6a9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:12:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":39.72,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"5a0c3a57-87bf-4577-879e-628b0d62b493","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:12:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":88.23,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"7bb16180-e85e-48a1-96db-96a00692daed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:12:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":430.4,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/learning-areas","requestId":"37547aa1-7457-4126-9525-5d977184bce5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:12:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academics/assessment-analysis","navId":"1788088341591-155683","text":"Assessment Analysis"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","href":"/dashboard/academics/assessment-analysis","navId":"1788088341591-155683","text":"Assessment Analysis","to":"/dashboard/academics/assessment-analysis"},"durationMs":119,"event":"NAV_PATH_CHANGE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","navId":"1788088341591-155683","to":"/dashboard/academics/assessment-analysis"},"durationMs":183,"event":"NAV_RENDER","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":412.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.32,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f0a9b70a-888b-4d60-856a-9b55bd4cefc1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:12:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":415.41,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x&limit=100","requestId":"0d655caf-3a99-420b-9250-5a14780e6172","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:12:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":449.1,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=&limit=100","requestId":"26941031-9de1-42c6-a239-b7ac6b08dee1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:12:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":463.86,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/analytics?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"bd2693fd-b3ec-4b8d-b900-6497d3cc4250","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:12:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":1009.5,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":1450.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/learning-areas"},"durationMs":1452.2,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/analytics"},"durationMs":1418.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":1420.7,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.83,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4749957f-cbab-46cb-a939-83fa02b5b7bd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:12:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Term 1 (Current)","name":null,"type":"button"},"durationMs":70,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.02,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4da2ffc3-8b95-4f98-b041-5bfc577a836c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:12:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":110.03,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpmp00d88bcn46m6jdkv&limit=100","requestId":"9d10672d-23fc-4640-9335-c081a6fffc80","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:12:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":121.72,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/analytics?termId=cmp8gtpmp00d88bcn46m6jdkv","requestId":"8234de90-3a5a-4b40-a948-2b97942f8591","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:12:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":551.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/analytics"},"durationMs":587.9,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Term 2","name":null,"type":"button"},"durationMs":76,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.14,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6e924c77-21cb-494e-8321-ffd6b6b9dc7c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:12:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"All Streams","name":null,"type":"button"},"durationMs":87,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.94,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5430e243-dc39-488e-a28f-3b83cde979b5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:12:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r16a:-trigger-export","label":"Export Data","name":null,"type":"button"},"durationMs":4,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.45,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"495fd1c7-774c-420d-b3f3-842bb55db5ae","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:12:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.8,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"d030d59b-898b-4c04-afda-a08bd93f23c6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:12:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Export as PDFProfessional report document","name":null,"type":null},"durationMs":26,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":510.8,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:12:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.04,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7809a8fa-2bbb-495f-a7d7-3798a7286df8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:12:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:13:00"}
{"durationMs":96.75,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"01aafb30-577b-4f6d-b770-c298b45c93f9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:13:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53.91,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4eed4a7e-951b-4bec-b4d5-da9a44717042","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:13:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":54.12,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a30a5270-2989-43ae-bd88-f3d78f6a726a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-30 14:13:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Export Report","name":null,"type":null},"durationMs":36,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:13:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":728,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:13:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":620.4,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:13:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.25,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d6d20114-5381-47e5-ab48-b221f8c66ba3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:13:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":668.1,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:13:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.61,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d381f255-3240-4e98-8a9d-28752ee70634","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:13:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r16a:-trigger-subjects","label":"By Subject","name":null,"type":"button"},"durationMs":13,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:13:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.17,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"131b5034-3b34-422a-a0b6-8b3ce21cb1b5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:13:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":61.27,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"a1262c4f-885d-4804-a579-51f4240d164e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:13:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Export PDF","name":null,"type":null},"durationMs":5,"event":"UI_CLICK","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:13:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":464,"event":"API_RESPONSE","ip":"154.159.237.124","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-30 14:13:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.98,"ip":"154.159.237.124","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c94bf047-3c84-4e60-b43e-8fa67abe25bf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:13:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 14:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:15:00"}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7087763e-5850-4535-836f-f30905e6ff7a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 14:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:20:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"45d8f7ab-26f9-4008-999d-1ccc351828f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 14:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:25:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b366f3b8-477e-41f6-aa10-1a87da3e771f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 14:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:30:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"07136618-f505-4923-8683-99d4f043582a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:34:00"}
{"durationMs":1.69,"ip":"196.96.90.191","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a066c1ab-10c8-4253-875e-87bd67fea73c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:34:12","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 14:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:35:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"375c0108-0d39-4e84-b500-ae4fe5f797a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 14:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:40:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9e99b7f-0473-4ee5-86da-8caae9783fe2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:40:02","userId":null}
{"durationMs":1.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bcbe7f62-8a37-48aa-9462-da2ccb1b95d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:40:56","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 14:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:45:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9fa0b3f-6fad-42d7-b2f5-ff29a38a5f62","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:48:00"}
{"durationMs":1.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ce0cb4a-1194-428c-a9d2-25df738271a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:48:19","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 14:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:50:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"559b4a1f-7f48-4102-a579-a9770f3a2389","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 14:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:55:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"007acf83-a82a-46af-8b89-95a593f79d21","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 14:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 14:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 15:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:00:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"551e6744-c03a-455a-8f53-1cfad74d73c5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 15:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:05:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"763e6229-de0c-4a36-a404-8bc3e4b5983a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 15:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 15:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:10:00"}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"88a5f117-2e2d-43ac-9ce3-74b8e9729a78","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 15:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 15:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:15:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"20b13c51-c8af-43fb-97ce-602ae7778005","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 15:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 15:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:20:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ffdcc3ac-cbd2-44b6-a176-d9f22b020122","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 15:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 15:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:25:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a130fc5a-a250-4494-a6b2-5c0227ee820d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 15:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 15:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:30:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ff6361c8-b376-40c9-995e-ba6765bbad45","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 15:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 15:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:35:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ffb385c-d5ec-46a3-b9b2-7ddf61927a45","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 15:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 15:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:40:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"97401867-ef75-4bfe-8b5f-cd8e7b29132b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 15:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 15:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:45:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2b2f8237-c1c2-4f99-b30d-5c8add9c780e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 15:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:46:00"}
{"durationMs":1.66,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"084330ff-fad0-490a-91e8-124238351a73","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 15:46:45","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 15:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:50:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ab51a410-1a20-4b4c-aaf6-68e5bc831fe7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 15:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 15:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:55:00"}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f2f30ae9-85c6-437b-830a-190b694084d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 15:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 15:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 16:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:00:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb14f1a1-b5a1-4b30-b09b-baae61382518","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 16:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:05:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"91402f02-469c-44e4-bd14-bb81eda3de60","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 16:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 16:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:10:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"654faa32-af21-49c1-a3c0-f4285c5b230f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 16:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 16:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:15:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"344d19c5-1623-4c3e-8348-5dec56d813a7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 16:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 16:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:20:00"}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ab91c9d-68bf-4ac1-9031-e2ee1eb03297","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 16:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 16:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:25:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e5fd950e-6a3c-4734-b0e3-ce6bc5232d25","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 16:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 16:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:30:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1ac20e48-1556-499e-9825-406a910b51de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 16:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 16:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:35:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3f0b1d62-9e40-4803-8dcf-fc367d477521","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 16:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 16:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:40:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"07985d3d-373f-439c-8c85-7417c6f1beec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 16:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 16:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:45:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dc5f6cb2-5850-4711-ae8f-1da6719e9e6b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 16:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 16:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:50:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b6f45a20-7571-4fa2-a5b2-e1595f8fbc83","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 16:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 16:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:55:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9181791f-70c4-44ba-963d-b26e5dfb223c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 16:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 17:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:00:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1a38ab1-a298-40ae-90a5-6d3150467252","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 17:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:05:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1dcd79b2-193c-42e4-be3e-4c4196a1aae4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 17:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 17:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:10:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"97510759-43bf-41c5-9019-2699998aa878","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 17:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 17:15:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"99ef0dfa-d620-40a3-97aa-aae68d82355f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 17:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 17:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:20:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70d25f11-eeee-40a8-911b-9d9e316865c4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 17:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 17:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:25:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a653ecd1-5ce8-410b-8240-a7bc7175f2dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 17:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 17:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:30:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"80138110-6ccc-4f87-83bf-65f38f8f37d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 17:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 17:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:35:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"428da841-180e-4dce-b2f8-6e494a0a9136","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 17:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 17:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:40:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a05c5158-617e-4120-add0-0c16cbd4d7fd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 17:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:45:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"93e991d6-03dc-4bfb-9008-508f18217f8c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 17:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 17:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:50:00"}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a5adcc0b-7ca5-4580-8942-bd7b50b45cab","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 17:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 17:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:55:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fecb78b8-6200-41f3-a328-8e5eea3d0edb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 17:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 18:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:00:00"}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb5e86c6-9abe-4025-9893-3bcc876c577f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 18:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:05:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7b5d85d2-e059-4e17-afcd-3c6dea0b5b51","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 18:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 18:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 18:10:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ed5e49f-b1b4-40d9-8999-1883f68f0c3b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 18:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:13:00"}
{"durationMs":1.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"787ad45b-c6ed-4856-ae11-afb00aef9df6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 18:13:16","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 18:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:15:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87c6f16a-4e3d-4048-bc97-6f6494a77de8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 18:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 18:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:20:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"154c4314-27e1-43b8-ab81-1a560cfba3dc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 18:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 18:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:25:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cb505b42-6f7e-4303-ac4c-9bce1c1f7948","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 18:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 18:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:30:00"}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c573047-3815-43d8-968d-343700cb6baa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 18:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 18:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:35:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6e37963e-5ae0-4460-ac8e-211b7f0a29ec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 18:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 18:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:40:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"884ab62e-827d-4197-9b26-202822873966","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 18:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 18:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:45:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e415b7cf-5c5b-4165-b7d9-3c28497291aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 18:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:46:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 18:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:50:00"}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"39bd0fa7-f399-4f62-a330-d30afc2edbfd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 18:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 18:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:55:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"74a88f3b-bf24-4c7d-b32f-d2b5e9c6a30c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 18:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 19:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:00:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ded2f523-8e5e-46fd-a063-46931dee32e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 19:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:05:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a38d826-bacd-4b95-a06b-7fb5ca308b73","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 19:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 19:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:10:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"09336353-d949-44d5-bf76-34eed0b4766d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 19:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 19:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:15:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1fe1dd8-5368-485e-917f-9889ec573d25","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 19:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 19:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 19:20:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f3389b73-b700-49fc-a955-ef4bd96dd59d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 19:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 19:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 19:25:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b91a3c5a-92be-4cd4-97ba-f9b0c2028b6f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 19:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:28:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"417147de-324a-4ede-aecd-bc6eb640ee19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 19:28:44","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 19:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:30:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 19:30:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 19:30:01","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9d7be62-3cbe-44a9-8fdf-6b5b5205a8ec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 19:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 19:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:35:00"}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa46eec0-f766-4270-8bc8-580f16aa8420","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 19:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 19:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:40:00"}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"884b435e-ad45-40ac-804e-39f242bcac87","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 19:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:43:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46786642-a792-4635-8b39-96d3982260ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 19:43:15","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 19:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:45:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4fd3c6c-cb72-43d8-8efe-87bd7b3e27c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 19:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 19:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:50:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7e936239-5ed7-4a9f-999a-55a795ff4536","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 19:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 19:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:55:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3072ed84-508a-4ec1-be1e-87e9bfbc09c1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 19:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 19:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 20:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:00:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"83eef115-5b1a-480b-8eca-80014d9763de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 20:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 20:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:05:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"09d01646-3024-48d0-ad6e-70f2f46bdcd0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 20:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:09:00"}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"694d54b2-d361-4eaf-891d-dab9a7195c66","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 20:09:02","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 20:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:10:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2e490441-b00f-4cd6-bcee-83247f063eb9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 20:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 20:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:15:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"44d3ee4e-5d0e-4b68-a37d-446864f6965b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 20:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 20:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:20:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe7f47c2-4a42-456c-9730-0bd78f18684c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 20:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 20:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:25:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"110afcc0-87b6-4378-9079-ca39e042df13","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 20:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 20:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:30:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12084704-5a91-4058-b137-d9c1fefa92bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 20:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:34:00"}
{"durationMs":1.62,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"81231f27-6595-47e5-a0dd-adb2c9f6ce57","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 20:34:22","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 20:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:35:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e9d69e0-e205-4d92-88d3-3c24da15194c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 20:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:37:00"}
{"durationMs":7.56,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/public/plans","requestId":"a59c5728-7204-4825-b552-76545c48f001","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-30 20:37:56","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 20:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:40:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3f7c17cb-0f1f-4e00-a108-45dc8f9e7184","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 20:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:42:00"}
{"durationMs":1.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"733f0bbc-3c97-4273-bb5c-6839c3abc86c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 20:42:27","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 20:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:45:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"03afd7b6-d154-47de-a1be-e821428133c4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 20:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 20:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 20:50:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1bbcb7cb-ae1c-4dac-ac1a-5d443aeea350","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 20:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 20:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:55:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0120f17b-f7a3-4e9f-8381-7369cbea1412","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 20:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 20:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 21:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:00:00"}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"138bc1ed-b7e9-488d-aa81-6a869a0c6554","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 21:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:05:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d29d161-5ff9-4be9-84f9-ce6b26a74768","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 21:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 21:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:10:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2a21bcc8-3589-4946-9f3d-654bd98267d1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 21:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 21:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:15:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8e4ba4f7-7117-4cc4-8936-670e51ca6bfc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 21:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:19:00"}
{"durationMs":1.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2b3b6811-6418-40f7-ae40-d1633fe8f56b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 21:19:00","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 21:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:20:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5617cef7-c528-4321-aca8-078dde98d88d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 21:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 21:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:25:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"41a534d9-87ce-4b30-aff1-e2bfc47a5371","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 21:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 21:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:30:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fcb32562-093e-4c2e-84f9-63fb0d9976d1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 21:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 21:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:35:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"752e227e-340e-4d4e-b362-4480c1637cfc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 21:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 21:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:40:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"073a76a8-14e9-4555-b0f7-a9a521c9f18d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 21:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 21:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 21:45:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c58bcbab-0639-4bdf-b993-2ef08703e417","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 21:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 21:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:50:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9356690-2e04-447e-924a-c543c9766e62","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 21:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:51:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d319579-2b33-4064-9929-0501c12a72b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 21:51:31","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 21:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:55:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f230016a-b14d-42ff-819b-e993ff52fc1b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 21:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 21:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 22:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:00:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"54d14f20-15d8-4bc4-814e-07c92aeaee34","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 22:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 22:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:05:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"febe7bc7-ab12-4b1c-a953-733901504335","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 22:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 22:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:10:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ca7e89c0-f620-4ad7-ba87-92768a756c9b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 22:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 22:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:15:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"db491b1e-7796-49cb-b93f-cc6ba65e4829","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 22:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 22:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:20:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cffd14b2-aa60-4e58-bfdf-31bdf866e2b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 22:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 22:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:25:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"62f3a169-a57b-49a3-a428-d52f6959e528","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 22:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 22:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 22:30:00","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9530dff6-10f2-4ecc-a51f-d9caa3228599","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 22:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 22:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 22:35:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9e027de5-6b50-429b-b558-57bb46f278d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 22:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 22:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:40:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"75c087ba-f3de-4cc4-860f-a0e14ad40a92","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 22:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 22:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:45:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a0e6bfc8-54bc-47b4-a883-9902be87ed05","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 22:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 22:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 22:50:00","totalConnections":1}
{"durationMs":1.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dd654fdf-9a1e-4411-b8df-c7083309c151","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 22:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 22:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:55:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7762d707-c7c2-48b9-b95d-204f0038d670","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 22:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 22:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 23:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 23:00:00","totalConnections":1}
{"durationMs":1.69,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6108a0b8-a6f2-478f-98f0-6b9d679ab9db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 23:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 23:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:05:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"86073692-b678-43be-b188-066c3b120879","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 23:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 23:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:10:00"}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72c69585-8b37-4eed-bb25-a8ff3e0e5bf2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 23:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 23:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:15:00"}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"02029d28-0d24-4b97-b755-3433051019d1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 23:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:17:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 23:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:20:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"60dec407-5d1f-4671-a72e-6ca50839728b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 23:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 23:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:25:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"922659e4-0ca3-48dc-bd71-89cad5183e29","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 23:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 23:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:30:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8e67fdac-b1a3-40e1-bcc6-a0197919bda0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 23:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 23:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:35:00"}
{"durationMs":1.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72e3e6bd-cb3e-4402-80df-863b3062c518","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 23:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 23:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:40:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6cc71457-07d3-4b4c-916e-11c8c2836c80","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 23:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 23:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:45:00"}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7f2502a-d09c-4e85-ac70-4e034823cba5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 23:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 23:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:50:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46705992-760a-4c49-8c81-512a1ccf4ca5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 23:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-30 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-30 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-30 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-30 23:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:55:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f8d134d3-166f-4342-81e2-2eb5846e264e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-30 23:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-30 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 00:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:00:00"}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"20ccdd89-9abc-4141-8550-712e329494e6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 00:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 00:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:05:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc1afdaf-77c1-47a0-a0d7-8dc584c43cf7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 00:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 00:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:10:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c215fb4d-4c8d-4255-b805-556565d4d74c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 00:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 00:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:15:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c60adc5-6173-4cfe-9ff9-aad90e375b1b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 00:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 00:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:20:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4067c38a-d17c-4667-b04d-5df466a116ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 00:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 00:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:25:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"faa4cfad-785b-44fb-af5a-c3ecc7f41b50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 00:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 00:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:30:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"694d1a17-9a96-44d8-9408-18f9e7865620","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 00:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 00:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:35:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f49417d0-b661-4425-a809-a04bb5cfcfb2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 00:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 00:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:40:00"}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1a4a07e1-7f02-4708-9f35-bef69482e1a3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 00:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 00:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:45:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a0537d09-e157-4200-868d-2b7b8a2683bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 00:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 00:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:50:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f35b6887-a494-425a-b7a2-2e7d624afa67","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 00:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 00:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:55:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6be82124-bd41-40ba-8748-e750e97dfbf1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 00:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 01:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:00:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da4ea1f5-4f36-45a5-9df1-94142fed8bb5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 01:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 01:05:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77419a15-59b1-4549-917d-84c5c5723e72","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 01:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 01:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:10:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c65acc0a-f5d5-456f-8e0f-f430d54bbf85","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 01:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 01:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 01:15:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"978e6c72-55c8-452d-bde8-299bb0bfdcfc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 01:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 01:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:20:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd3ae0e3-588d-43f6-839c-c42ca4bf9d34","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 01:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 01:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:25:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"40307759-90ac-43ef-8293-55d15e663e30","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 01:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 01:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:30:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"63c9876b-2ad5-4eb9-935e-7dbf89efce0d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 01:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 01:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:35:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4271c8da-7085-4a41-b7d2-216bdea39d89","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 01:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 01:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:40:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bc0b9bd6-8ed6-4d0d-997e-c931d20a8acc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 01:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 01:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 01:45:00","totalConnections":1}
{"durationMs":1.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"80f36d70-0dfb-476e-a430-4a546ad90057","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 01:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 01:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:50:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9fc8090b-6653-4714-95a4-b3a2fef63765","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 01:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 01:55:00","totalConnections":1}
{"durationMs":1.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dd6be24b-2210-4150-a2ad-f0a44e61849e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 01:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 02:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:00:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"012c0d6b-3c45-4562-b394-3ee6923a0f0d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 02:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 02:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:05:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d5449252-8675-4213-888d-bf1bac59cf01","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 02:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 02:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:10:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"162bb941-d9b1-4c4d-9ac8-5160fb69e743","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 02:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 02:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:15:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de5f3951-fd87-4a67-bb63-c3bce631ec8b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 02:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 02:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:20:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"80d29737-17bc-4d6e-b00a-442f81c8951b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 02:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 02:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:25:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad075568-137c-4038-a974-b5156a455a77","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 02:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 02:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:30:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e05d5739-755d-4cd5-b78b-9467647cf408","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 02:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 02:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:35:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"adc5e23c-07ab-438a-b919-4994af23a668","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 02:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 02:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:40:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"65c210d3-59a4-4000-b1dd-b75f103ff583","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 02:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 02:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:45:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b56eea5e-ddd1-40d9-9f8c-823d7aee0f1c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 02:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 02:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:50:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1a70730e-32c6-4e98-a017-9800c8e9eb9d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 02:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 02:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:55:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea063c5a-289c-4fc6-be84-8d6c0008f3a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 02:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 02:59:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 03:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:00:00"}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9919806-55df-487f-a05f-8397e8b40bf7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 03:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:05:00"}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00247eae-fbb8-458f-983b-ec312f5bc264","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 03:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 03:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:10:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b12ca044-f65a-4b37-ad67-cc6936252b06","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 03:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 03:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:15:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84907882-deb8-41f2-aaab-901a16d48cd1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 03:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 03:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:20:00"}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"013d395d-42b0-4cbd-b31b-82592e7a57cb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 03:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:23:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 03:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:25:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e8c09330-0d93-45d2-a37f-71f72fedced7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 03:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 03:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:30:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"96a463d4-c974-454d-8aa5-b95bfc6f7d88","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 03:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 03:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:35:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ee67b9b4-b6e4-4e35-9280-40b4dc257a1a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 03:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 03:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:40:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ef589fc7-c8f8-4c43-8879-a4878a95921d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 03:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 03:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 03:45:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dc311182-50f6-413b-9714-6e5074886207","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 03:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 03:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:50:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"96a56d1a-db94-4848-820d-aa7a209bd0f8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 03:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 03:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 03:55:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"beb51d95-7e61-4bf3-a861-f5d3404e1a00","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 03:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 04:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:00:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ba944bfc-f3b2-4570-8078-5b07ed5293b3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 04:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 04:05:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a4f6a469-6b98-4343-bd27-28d0916a1863","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 04:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 04:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:10:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"74d1dfd0-10a9-42f9-8c5b-c2b169cabaf2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 04:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 04:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:15:00"}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe473ab8-e77e-4318-9bae-7c499cefbaee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 04:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 04:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:20:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"689b6116-7969-4e76-8a1f-c930aceaedcf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 04:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:22:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 04:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:25:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ab63a94-6b17-4bb2-8adb-6a9fb6484838","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 04:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 04:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:30:00"}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c84f0fdd-9293-45c8-ae2f-1ac6b34132dc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 04:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 04:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:35:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0d106688-d010-4697-9236-d31cf78df6ab","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 04:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 04:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:40:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f7813ac7-7ea1-458e-b216-dc2b5827c92c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 04:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 04:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:45:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f37b232b-439b-41d5-af03-44ec03f66d8a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 04:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 04:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:50:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3cd19dd7-8276-4555-af55-3a0695a795c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 04:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:55:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7c2e6ce4-983a-4262-807d-9b0597ef7897","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 04:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 05:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:00:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6832f342-c4af-4a32-88e3-a713bac3b901","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 05:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 05:05:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3a22cdc3-5439-4db6-a664-6ad6e5868cd3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 05:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 05:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:10:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da7c13d6-4d80-483b-bca3-11aa6f718c88","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 05:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 05:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:15:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ef2c97d-d292-4c6f-9be9-fbf977816ca8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 05:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 05:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:20:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"240a6cbe-04ed-4b7b-953b-3a99b16a9c7c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 05:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 05:25:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 05:25:01","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:25:01"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3597560-c755-4b52-80ac-c01e82c0f9e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 05:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 05:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:30:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4819f4f3-fb27-40ec-bfd4-f42cafca40fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 05:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 05:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:35:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"156acaf8-183a-42fd-a732-f0b157d264fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 05:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 05:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:40:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1a777e96-43e6-41fe-8d3c-3e96584e4f4c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 05:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 05:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:45:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4c7e7c15-472c-435f-90da-74209d5d9e78","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 05:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 05:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 05:50:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5eed5d77-8fb1-41b1-b861-1327cbeb27c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 05:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 05:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:55:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c1d57943-fc25-4945-87b3-b300450ed2ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 05:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 06:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:00:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"74ef7882-ae9d-4407-a7c6-ff45716856a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 06:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:05:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7ee2f1d-ff6b-41ad-aec0-57b3a6e63168","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 06:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 06:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:10:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5a08dcac-67d2-4fe6-b70b-8815a915fce1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 06:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 06:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:15:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb73eb35-8f41-4bab-81a4-730011c3a726","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 06:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 06:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:20:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2d36732b-0ec2-4136-8263-5a159736cfd0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 06:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 06:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:25:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f4af3a39-d61b-4c24-a2fe-3fd18b16b5e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 06:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 06:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:30:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d178295-0471-422b-b044-c384cee4e409","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 06:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 06:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:35:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c8f9a274-582d-4c92-b802-692058998374","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 06:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 06:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:40:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ceb22056-8573-48ac-a627-a878a1c64acc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 06:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 06:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 06:45:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"57394a16-9ee1-4044-b5a0-6cc57a248c74","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 06:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 06:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:50:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92bc048c-1dfc-47a0-9b81-db4bf260d7af","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 06:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 06:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:55:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0be5117a-bc0a-4483-b5a4-fb5ad6fff1ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 06:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 07:00:00"}
{"level":"info","message":"[CRON] Arrears reminder started","service":"cbc-sms","timestamp":"2026-08-31 07:00:00"}
{"level":"error","message":"[CRON] Arrears reminder failed:","service":"cbc-sms","timestamp":"2026-08-31 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 07:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:00:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2c00bf36-8b18-40aa-b97f-024059c7b980","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 07:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:05:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f34fff0e-d788-47e2-a81a-5022113c44a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 07:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 07:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:10:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d391a8bc-b353-4ae6-aea9-c4a12d96f87c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 07:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 07:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:15:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f8e479f1-17ee-4c27-bc4e-16df50bfc13a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 07:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 07:20:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"94078bd9-5846-49e0-9f83-a6d45a1e89e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 07:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 07:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 07:25:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84cdad54-0e2b-43f2-b8aa-5cb11dd1b80b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 07:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 07:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:30:00"}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"09336f47-ed0b-4c68-9b11-b66cdb878dfb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 07:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 07:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:35:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da79611b-320b-410e-b8a5-2291e5a75ee0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 07:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 07:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:40:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"16fbb291-23ca-40ab-82e1-798aa31c8a11","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 07:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:45:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"27faae7d-d3ed-42ec-9ecb-3432a361fb16","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 07:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 07:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:50:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c2326bb9-9956-4729-b3d3-a6e7392eb04a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 07:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 07:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:55:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da6c858f-613f-4cb1-892d-a73435fcfed1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 07:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 07:59:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-08-31 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-08-31 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 08:00:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-08-31T05:00:00.589Z","service":"cbc-sms","timestamp":"2026-08-31 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 08:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-08-31 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-08-31 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-08-31 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-08-31 08:00:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b823549-08bc-4b6d-939f-e2236d34fad7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 08:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:05:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"31135467-13d0-4cb6-a9a0-f859984a920f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:09:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 08:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:10:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc884eb0-aef5-44fa-a743-ffe6ffe4feec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:12:00"}
{"durationMs":1.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e27c072a-4c48-4363-b8bd-36954928cd50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:12:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 08:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:15:00"}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"227776d7-b2dd-46f3-954d-2372be3c1933","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 08:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 08:20:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"555205ea-ce82-438d-8d75-6814457edefb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 08:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:25:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4a9dabab-8a40-4cbc-ab50-33a6d6eff748","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 08:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:30:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b20c270d-d443-4859-ae37-cec243c09077","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 08:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:35:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8eb0e828-b886-4908-a2fb-809365610848","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 08:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:40:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb479862-e92b-4d4a-85f8-1034aa939ea9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:40:02","userId":null}
{"durationMs":0.93,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5c943685-59b7-4afa-ba61-d8da8e9789e6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:40:05","userId":null}
{"durationMs":2.23,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"051b65d2-bf1d-4ac2-80e3-cbea2bc48c45","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-31 08:40:06","userId":null}
{"durationMs":1.24,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/staff-log?page=1&limit=20&date=2026-08-31","requestId":"6eba2c38-98dd-4538-b15b-d451eb7fa8ce","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-31 08:40:06","userId":null}
{"durationMs":2.44,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/daily-stats?date=2026-08-31","requestId":"4b8d0329-04f0-4d88-81cf-8ea36ea59689","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-31 08:40:06","userId":null}
{"durationMs":1.5,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"7044cd3a-e4db-49e9-8789-af42f0b8fa78","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-31 08:40:06","userId":null}
{"durationMs":1.51,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"2fc1c616-ffdb-465c-bc14-a96bd4d8346d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-31 08:40:06","userId":null}
{"durationMs":1.63,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"9d82bafe-9193-4346-8d94-c632cb96d86a","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-08-31 08:40:06","userId":null}
{"durationMs":56.11,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"11210eb4-8352-48eb-b795-1ead07571757","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:40:06","userId":null}
{"durationMs":402.62,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"784c00a6-1b74-45e8-94ab-072db43aa9fd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:40:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":347,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:40:07","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/clocking/staff-log"},"durationMs":351,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:40:07","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/clocking/daily-stats"},"durationMs":631,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:40:07","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":634,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:40:07","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":636,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:40:07","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":651,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:40:07","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.45,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d47756ae-5ae6-448f-a37f-0f9e693f96ac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:40:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":514.79,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"7e90826c-25f6-486a-ba48-b0ebd05bf0bc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:40:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":499.36,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"a49abdac-fc6c-41fc-90ac-b298bfe6de37","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:40:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":527.52,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/staff-log?page=1&limit=20&date=2026-08-31","requestId":"90c6dc3b-a506-4488-b84e-c1dcb7ad666c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:40:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":521.12,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/daily-stats?date=2026-08-31","requestId":"3239b083-468c-41ff-a095-590d375d68fc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:40:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":514.45,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f6c32537-0ee1-407d-8378-e273ed8b52cb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:40:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":757,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:40:08","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":875,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:40:08","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":878,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:40:08","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/clocking/staff-log"},"durationMs":881,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:40:08","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/clocking/daily-stats"},"durationMs":883,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:40:08","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":895,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:40:08","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.23,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"913cbf1b-cada-46e6-83e0-f48b756208eb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:40:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":122,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:40:12","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.51,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d398466f-435e-4cf8-a1f1-060682c1050a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:40:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":68,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:40:17","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.01,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"563bda1c-8946-4c52-ac00-6e1efff95d51","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:40:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":107,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:40:30","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.09,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"47e66940-7966-485b-8519-11680d854a45","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:40:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:41:00"}
{"durationMs":81.68,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"80ca4aa6-8fc0-4707-b623-e3dfca56a5f2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:41:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1082,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:41:51","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.84,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"37b797e1-7d04-4eb6-b903-1b4e73acd074","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:41:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:42:00"}
{"durationMs":1.31,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da9193e9-b414-4d4f-9f00-7fa21ca90c38","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:42:50","userId":null}
{"data":{"id":null,"label":"Teacher Portal","name":null,"type":null},"durationMs":1146,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:42:50","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.61,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9a27ab1b-0c9b-469d-8c9b-e1516445e58a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:42:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":277.36,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms/current","requestId":"223fa009-cbfe-492e-bbc6-498fe0938afb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:42:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":297.25,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"d787260b-8453-472a-87fc-c2d50cc6a775","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:42:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":396.61,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"fe797986-43fa-4d77-bbbf-f5ef58d37f34","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:42:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":388.35,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Monday","requestId":"63abc0db-e440-43de-b2e7-0c814b2fb8b0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:42:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":296.16,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a3d292fd-56d6-4357-97e7-f6987f871409","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:42:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":426.71,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"b706a877-e793-4af8-861f-2cfb5f259ab9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:42:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":208.89,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"fc20c2d1-3f8f-42d8-a88a-27f029f8b1be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:42:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":303.14,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview","requestId":"581c62b2-349a-42b6-8faa-800e6c2d8030","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:42:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.01,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"f09175a8-2641-426a-ba4c-19d228145e8f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:42:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":52.39,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/status","requestId":"1263b7b0-880a-4b7c-a529-4ffe6f2cc2be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:42:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academic/terms/current"},"durationMs":660,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:42:52","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":741,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:42:52","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-streams"},"durationMs":802,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:42:52","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-schedule"},"durationMs":831,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:42:52","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":836,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:42:52","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/overview"},"durationMs":839,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:42:52","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":840,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:42:52","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":842,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:42:52","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/overview"},"durationMs":409,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:42:52","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.66,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4f29c26e-dfba-42df-9758-fd468c86934a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:42:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/clocking/status"},"durationMs":408,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:42:54","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.03,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1818cde2-ba0c-41d8-bf67-3e49e0f653a3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:42:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:43:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":107,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:07","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.95,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6feb3ef1-1192-41cc-a95a-17c0d46dd5ef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:43:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/class-teacher/calendar","navId":"1788154984271-23451","text":"Calendar"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:08","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.13,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"636d6c0e-8bf7-456d-829a-4f9b71d3c3a2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:43:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":104.57,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"e3fcfe18-b285-4a1c-bb33-4c63bab1bee2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:43:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":306.27,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/events?startDate=2026-07-24T21:00:00.000Z&endDate=2026-09-07T20:59:59.999Z","requestId":"c4017a9e-992c-46e7-9115-dad6f5efcd93","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:43:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":284.88,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/summary","requestId":"17a26b47-65d3-4d69-8f0d-06c609ff0da2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:43:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":383.64,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/holidays?year=2026","requestId":"88e0aa7a-8ed9-482f-8f41-0896523c6ce7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:43:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/teacher","href":"/dashboard/class-teacher/calendar","navId":"1788154984271-23451","text":"Calendar","to":"/dashboard/class-teacher/calendar"},"durationMs":973,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:09","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/teacher","navId":"1788154984271-23451","to":"/dashboard/class-teacher/calendar"},"durationMs":973,"event":"NAV_STALL","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:09","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/teacher","navId":"1788154984271-23451","to":"/dashboard/class-teacher/calendar"},"durationMs":1048,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:09","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":493,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:09","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/events"},"durationMs":678,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:09","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/summary"},"durationMs":683,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:09","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/holidays"},"durationMs":797,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:09","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.82,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6c7995ff-c025-46a8-aa3c-4bb8bbcac1e5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:43:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Academic Years & Sessions","name":null,"type":null},"durationMs":59,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:28","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.81,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fad16359-9341-4e91-ac19-6feb9d8ed12e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:43:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"School Calendar","name":null,"type":null},"durationMs":56,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:29","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.4,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"64d5a3d7-9d90-436e-8dd4-58f3b096afba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:43:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.76,"ip":"154.159.237.189","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":"2df8a1f0-daf8-4bf9-b256-8eaa7a825cb6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:43:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":26,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:39","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/events"},"durationMs":400,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:39","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.96,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1d130e5d-3f3b-45c9-9878-0a54b207103e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:43:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":68,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:41","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.82,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2076c3d6-df77-4743-8546-9ef104aaea4e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:43:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/class-teacher/calendar","navId":"1788155024484-563549","text":"Calendar"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:48","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.29,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"55223675-9fe5-4b7f-aee1-58adfe5eafc9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:43:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":99.84,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"47d7794b-7bec-4f47-bb3a-8f9986481a37","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:43:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":103.31,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a15e0a55-f6d8-49b3-97b2-c6e94c43253e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:43:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":452,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:53","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":484,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:53","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Academic Years & Sessions","name":null,"type":null},"durationMs":51,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:53","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.32,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"969a7395-e793-40f7-a788-7588ca122e7f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:43:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Events & Activities Manager","name":null,"type":null},"durationMs":172,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:43:59","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.49,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"79d868f0-c7c3-4da8-b484-fdf785a666d1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:43:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:44:00"}
{"data":{"id":null,"label":"Public Holidays","name":null,"type":null},"durationMs":72,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:02","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.41,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e1eb945f-a5d7-470f-8e0f-db44e3534f3c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:44:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":70,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:13","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.37,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"195b27c2-0952-479b-bdef-09a3f773d0e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:44:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/class-teacher/timetable","navId":"1788155064069-758185","text":"Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:28","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.91,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"16910113-3638-48c0-b6e1-34d4320f1bcc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:44:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":244.37,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule","requestId":"af56aee8-510e-4c30-99ed-abb5e8c0433f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:44:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/calendar","href":"/dashboard/class-teacher/timetable","navId":"1788155064069-758185","text":"Timetable","to":"/dashboard/class-teacher/timetable"},"durationMs":835,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:29","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/calendar","navId":"1788155064069-758185","to":"/dashboard/class-teacher/timetable"},"durationMs":835,"event":"NAV_STALL","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:29","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/calendar","navId":"1788155064069-758185","to":"/dashboard/class-teacher/timetable"},"durationMs":883,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:29","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-schedule"},"durationMs":597,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:29","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.75,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ebc02371-11f5-4bb3-b2c6-a291f02e8398","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:44:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Lesson Plans","name":null,"type":null},"durationMs":25,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:32","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.96,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7c1561fe-419b-409c-a842-246da9c436f9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:44:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"My Lessons","name":null,"type":null},"durationMs":24,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:37","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.55,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5a5820de-56cf-4544-8b45-27a5029bbe10","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:44:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":49,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:38","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.32,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bdd56717-4736-4863-b793-15b1a9e5cf09","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:44:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":117.62,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/my-status","requestId":"c20571a5-e6c9-4a89-a89a-5f71d38f156d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:44:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":167.28,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/my-history?limit=20","requestId":"ba38ca32-df0d-471a-9070-387c298dbb7a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:44:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/class-teacher/clocking","navId":"1788155076130-667103","text":"Clock In/Out"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:40","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/timetable","href":"/dashboard/class-teacher/clocking","navId":"1788155076130-667103","text":"Clock In/Out","to":"/dashboard/class-teacher/clocking"},"durationMs":518,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:40","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/timetable","navId":"1788155076130-667103","to":"/dashboard/class-teacher/clocking"},"durationMs":518,"event":"NAV_STALL","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/class-teacher/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:40","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/timetable","navId":"1788155076130-667103","to":"/dashboard/class-teacher/clocking"},"durationMs":587,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:40","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.75,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ca4f63f3-0a6b-484a-b628-095b2b591864","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:44:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/clocking/my-status"},"durationMs":453,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:41","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/clocking/my-history"},"durationMs":511,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:41","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.99,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a8c17121-0cd3-41d0-98a6-976f7991133a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:44:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":237.73,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a4c8d18f-a5a9-4fc2-a0be-80ed00127dd2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:44:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":256.75,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"cff98922-d17a-420f-9c36-9ec1d2da57dd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:44:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"QR Code Scanner","name":null,"type":null},"durationMs":33,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:53","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":590,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:53","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":584,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:53","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.86,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"49d9820b-932e-4e3b-81f4-88d939530111","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:44:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":64,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:55","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.77,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a8c96d78-40ed-457e-9b85-030165e5bf89","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:44:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/class-teacher/students","navId":"1788155093193-495849","text":"My Students"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:57","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/clocking","href":"/dashboard/class-teacher/students","navId":"1788155093193-495849","text":"My Students","to":"/dashboard/class-teacher/students"},"durationMs":445,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:57","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/clocking","navId":"1788155093193-495849","to":"/dashboard/class-teacher/students"},"durationMs":470,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:44:57","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.08,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ef2f19a3-32ff-4572-ba9f-008b67dde3bd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:44:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 08:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 08:45:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17483d17-227c-4671-afed-97447e04b862","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:45:01","userId":null}
{"data":{"id":null,"label":"Other Classes","name":null,"type":null},"durationMs":32,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:03","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.12,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"15188050-a68c-434d-9226-29738d1d1160","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:45:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":83,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:10","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.99,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9477cb55-ccbc-40a8-9181-7ef44e3dfcf3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:45:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/class-teacher/attendance","navId":"1788155109257-994734","text":"Attendance"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:13","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/students","href":"/dashboard/class-teacher/attendance","navId":"1788155109257-994734","text":"Attendance","to":"/dashboard/class-teacher/attendance"},"durationMs":588,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:13","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/students","navId":"1788155109257-994734","to":"/dashboard/class-teacher/attendance"},"durationMs":588,"event":"NAV_STALL","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:13","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/students","navId":"1788155109257-994734","to":"/dashboard/class-teacher/attendance"},"durationMs":654,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:13","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.24,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0766a25f-c0b0-4a98-b6c5-dddaedc21026","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:45:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":65,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:17","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.65,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9ef56036-725c-40b5-91be-64e3b1461405","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:45:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/class-teacher/messages","navId":"1788155127815-497063","text":"Parent Messages"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:32","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/attendance","href":"/dashboard/class-teacher/messages","navId":"1788155127815-497063","text":"Parent Messages","to":"/dashboard/class-teacher/messages"},"durationMs":458,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/messages","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:32","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/attendance","navId":"1788155127815-497063","to":"/dashboard/class-teacher/messages"},"durationMs":471,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/messages","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:32","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.83,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"047b9876-c6f3-470c-9219-acd877809029","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:45:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":51,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/messages","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:36","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.64,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"23e9a640-f46d-4f7f-9af7-47ca9a458efc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:45:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/class-teacher/students","navId":"1788155145112-131938","text":"My Students"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/messages","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:49","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/messages","href":"/dashboard/class-teacher/students","navId":"1788155145112-131938","text":"My Students","to":"/dashboard/class-teacher/students"},"durationMs":81,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:49","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/messages","navId":"1788155145112-131938","to":"/dashboard/class-teacher/students"},"durationMs":120,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:49","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.7,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"37a918ba-dc31-4203-9cc1-ee215cd4e701","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:45:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Other Classes","name":null,"type":null},"durationMs":10,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:52","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.93,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"092abb61-e99d-415e-9792-5da93b2900ec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:45:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":186.84,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f83755a8-36f9-4723-b394-b5ba14ed92d5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:45:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":171.75,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"adb35204-333e-4d25-af43-1d0108b24efd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:45:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":57,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:53","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.25,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"81dad238-7a3e-422a-b280-8be446dd8b0d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:45:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":519,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:54","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":508,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:45:54","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.49,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2723efcb-ee36-4803-bb02-2ea09c9c9c24","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:45:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:46:00"}
{"data":{"href":"/dashboard/class-teacher/portfolios","navId":"1788155161206-198686","text":"Student Portfolios"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:05","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/students","href":"/dashboard/class-teacher/portfolios","navId":"1788155161206-198686","text":"Student Portfolios","to":"/dashboard/class-teacher/portfolios"},"durationMs":448,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/portfolios","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:05","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/students","navId":"1788155161206-198686","to":"/dashboard/class-teacher/portfolios"},"durationMs":466,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/portfolios","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:05","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.26,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c2defbbc-4e89-439f-9b72-9c975b3dcd36","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:46:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":84,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/portfolios","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:15","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.78,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d974c627-c67d-43dd-9cf8-01360ed9270b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:46:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/class-teacher/attendance","navId":"1788155179050-230953","text":"Attendance"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/portfolios","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:23","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/portfolios","href":"/dashboard/class-teacher/attendance","navId":"1788155179050-230953","text":"Attendance","to":"/dashboard/class-teacher/attendance"},"durationMs":121,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:23","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/portfolios","navId":"1788155179050-230953","to":"/dashboard/class-teacher/attendance"},"durationMs":186,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:23","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.04,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f5797089-33df-46c1-b586-f61f37d8fa07","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:46:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":63,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:28","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.64,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5324901d-8d3a-48ad-b81a-28b5400b8cd5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:46:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":57,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:30","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.7,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8e4c3ec9-d0c9-4fb6-8fe1-53bebe44c5fe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:46:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.73,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0bce4259-bae0-42fb-b165-22824923cfcd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:46:32","userId":null}
{"durationMs":75.07,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"c32c20ea-81cb-4524-be8a-317417f365e8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:46:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":315.37,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"72889d5f-3138-4660-9b81-b13e27ddee90","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:46:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":283.73,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"827ede31-8839-49ce-b65b-7f889d5a6db8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:46:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":291.76,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"47d4878d-5ff2-470c-a335-5598fb08c450","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:46:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":310.47,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ec013683-debc-49eb-8a4a-509c71f3cdf8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:46:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":432,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:34","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":683,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:34","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-streams"},"durationMs":694,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:34","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":697,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:34","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":701,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:34","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.2,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0e1afea0-53b1-4416-8dc1-7f4965646ea1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:46:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":57,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:36","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.8,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"43e41372-ec54-46f5-8580-ca7b93ea73ad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:46:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/class-teacher/assessments/formative-grades","navId":"1788155199549-565767","text":"Formative Grades"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:43","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/attendance","href":"/dashboard/class-teacher/assessments/formative-grades","navId":"1788155199549-565767","text":"Formative Grades","to":"/dashboard/class-teacher/assessments/formative-grades"},"durationMs":550,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:43","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/attendance","navId":"1788155199549-565767","to":"/dashboard/class-teacher/assessments/formative-grades"},"durationMs":550,"event":"NAV_STALL","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:43","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/attendance","navId":"1788155199549-565767","to":"/dashboard/class-teacher/assessments/formative-grades"},"durationMs":568,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:43","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.86,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d1834357-0436-4ea6-9657-906f0b03c860","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:46:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.29,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms","requestId":"db93f692-5f6d-46d4-9737-3ddde512a344","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:46:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":105.78,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"55a90a32-a4d4-4ab1-b73c-98cf75f947f7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:46:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":103.96,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/learning-areas","requestId":"1de4440b-d299-4709-8d70-c1af43d9fb76","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:46:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":73.62,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x&streamId=&isPublished=true&limit=100","requestId":"11bbb1c3-2983-453e-aa00-6198d57a990b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:46:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academic/terms"},"durationMs":457,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:45","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-streams"},"durationMs":508,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:45","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/learning-areas"},"durationMs":546,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:45","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":456,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:45","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.42,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"277379d1-6967-460e-ae39-1a22c061fdd8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:46:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":96,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:51","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.04,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"21ec8a6f-cf99-434e-b274-f0398e82a605","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:46:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":70.95,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"9ccd5280-9789-40ae-a3b0-5433013f16e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:46:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.8,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Monday","requestId":"bf8413f0-8242-4355-a9fc-669924327ff8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:46:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":126.65,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/status","requestId":"c27344a9-0e1b-485a-953f-3ddbdda519b3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:46:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/class-teacher","navId":"1788155209849-984787","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:54","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/assessments/formative-grades","href":"/dashboard/class-teacher","navId":"1788155209849-984787","text":"Dashboard","to":"/dashboard/class-teacher"},"durationMs":213,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:54","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/assessments/formative-grades","navId":"1788155209849-984787","to":"/dashboard/class-teacher"},"durationMs":231,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:54","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/overview"},"durationMs":409,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:54","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-schedule"},"durationMs":413,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:54","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.2,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"624cb809-953b-4763-a725-132e13e59340","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:46:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/clocking/status"},"durationMs":463,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:46:55","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.06,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c09a0e82-2883-4f1b-a976-21601841f1e9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:46:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.61,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f178a2d5-c560-4a5a-8807-f733876b5377","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:46:56","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:47:01"}
{"durationMs":64.96,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"b11a0665-14c2-4e6c-87d4-f8bb38f51998","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:47:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":121.8,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/holidays?year=2026","requestId":"516ad9c8-c964-4fe5-ba56-45e06d5bd558","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:47:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":124.9,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/summary","requestId":"0295f82e-de2c-43b1-9468-a62ce6889caa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:47:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":155.5,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/events?startDate=2026-07-24T21:00:00.000Z&endDate=2026-09-07T20:59:59.999Z","requestId":"93e9f977-fb81-40d0-9a67-239c0cd1bd3b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:47:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/class-teacher/calendar","navId":"1788155221081-783438","text":"Academic Calendar & Term Events"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:05","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher","href":"/dashboard/class-teacher/calendar","navId":"1788155221081-783438","text":"Academic Calendar & Term Events","to":"/dashboard/class-teacher/calendar"},"durationMs":203,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:05","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher","navId":"1788155221081-783438","to":"/dashboard/class-teacher/calendar"},"durationMs":264,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:05","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":458,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:05","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/summary"},"durationMs":486,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:05","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/holidays"},"durationMs":493,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:05","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/events"},"durationMs":510,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:05","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.92,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"22b24a63-8c6f-4ded-96b0-74a4c6bee5f5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:47:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":96,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:16","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.41,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4cf92c8a-9cad-4ce1-8550-571925e01b06","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:47:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":62,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:17","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.26,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c0fe03ec-143f-4322-850f-148053d00c2d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:47:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":79,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:20","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.71,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"24f3d6cd-6323-43f0-816f-2d374a995ac3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:47:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/class-teacher","navId":"1788155237884-667616","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:22","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/calendar","href":"/dashboard/class-teacher","navId":"1788155237884-667616","text":"Dashboard","to":"/dashboard/class-teacher"},"durationMs":155,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:22","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/calendar","navId":"1788155237884-667616","to":"/dashboard/class-teacher"},"durationMs":218,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:22","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.47,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b1c9a1e4-9f2d-4d96-868b-2f7beccaded2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:47:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":135.51,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"7c62df79-72d1-45fa-a66b-4c9a885d5d31","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:47:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":153.82,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"187b0088-eaec-4b69-a40e-5a520361bb7f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:47:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":473,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:34","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":493,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:34","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/profile","navId":"1788155251049-506410","text":"My Profile"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:34","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher","href":"/dashboard/profile","navId":"1788155251049-506410","text":"My Profile","to":"/dashboard/profile"},"durationMs":134,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:34","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher","navId":"1788155251049-506410","to":"/dashboard/profile"},"durationMs":221,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:34","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.87,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d2d932f3-46bc-4fc5-b6b6-08ce4ab090cd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:47:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.04,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"55f44927-5e68-475f-a385-e77abe08f5d9","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:47:35","userId":null}
{"durationMs":54.39,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"444657fc-46c9-4421-a964-bd0454f09685","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:47:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":4.08,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"066ab095-e307-4c10-8d1a-2d3c2dd6cb9e","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:47:36","userId":null}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":352,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:36","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":408,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:36","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.8,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c67243d0-0558-4cf8-b89f-fb92abf2e572","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:47:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":330,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:37","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.93,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4c07f779-e3fe-446d-b76a-129d982e0bf5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:47:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":78,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:39","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.16,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"95075979-db34-4b47-8bfa-a516ff822d5b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:47:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.86,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/api/v1/certificates/stats","requestId":"198b401a-21b1-40c1-a113-fae0fa093979","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:47:54","userId":null}
{"durationMs":1.61,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/api/v1/certificates","requestId":"451e9c7e-2ea5-467f-bd2b-2322d3d952aa","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:47:54","userId":null}
{"data":{"href":"/dashboard/certificates","navId":"1788155270930-300653","text":"Certificates"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:55","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/profile","href":"/dashboard/certificates","navId":"1788155270930-300653","text":"Certificates","to":"/dashboard/certificates"},"durationMs":474,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:55","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/profile","navId":"1788155270930-300653","to":"/dashboard/certificates"},"durationMs":496,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:55","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.29,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"238d85d9-95f9-4cf2-a712-f2fd42d95625","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:47:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/api/v1/certificates/stats"},"durationMs":347,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:55","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/api/v1/certificates"},"durationMs":352,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:47:55","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.03,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8d931c60-fea7-4d58-a978-6b612e0cbe81","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:47:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:48:00"}
{"durationMs":2.34,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"f7b56e4a-71ad-47a9-827d-2967d8f8503b","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:48:00","userId":null}
{"data":{"from":"/dashboard/certificates","href":null,"navId":null,"text":null,"to":"/dashboard/profile"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:01","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/certificates","navId":null,"to":"/dashboard/profile"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:01","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":345,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:01","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.87,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"85a47d84-4ff1-4a42-bedb-34edd7c5340c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:48:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.67,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"0791251d-d866-411d-b34a-604a3b4cb38c","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:48:01","userId":null}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":347,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:02","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.65,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"90265ce0-5cb0-4936-9d39-e4b65d851dbb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:48:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":72,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:05","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.23,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"48f85fcd-e113-4eba-a1af-e05fca4dc96e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:48:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":88.54,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/career-guidance/stats","requestId":"21572b10-f267-4a45-8776-e44b5dddc385","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:48:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"limit":20,"page":1},"error":"Unknown column 'counselor.photoUrl' in 'field list'","ip":"154.159.237.189","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.select (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async CareerGuidanceSession.findAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1140:21)\n    at async Promise.all (index 1)\n    at async CareerGuidanceSession.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listSessions (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/career-guidance.service.js:45:44)\n    at async listSessions (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/career-guidance.controller.js:6:46)","timestamp":"2026-08-31 08:48:16","url":"/api/v1/senior-secondary/career-guidance","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":144.2,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/career-guidance","requestId":"465c4e30-0868-4fee-af4a-cca6ff0b648f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-08-31 08:48:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/senior/career-guidance","navId":"1788155292910-780385","text":"Career Guidance"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:17","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/profile","href":"/dashboard/senior/career-guidance","navId":"1788155292910-780385","text":"Career Guidance","to":"/dashboard/senior/career-guidance"},"durationMs":518,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:17","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/profile","navId":"1788155292910-780385","to":"/dashboard/senior/career-guidance"},"durationMs":518,"event":"NAV_STALL","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:17","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/profile","navId":"1788155292910-780385","to":"/dashboard/senior/career-guidance"},"durationMs":537,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:17","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.42,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c90e3a69-6f4f-4e30-a68c-a0d59b22382b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:48:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"limit":20,"page":1},"error":"Unknown column 'counselor.photoUrl' in 'field list'","ip":"154.159.237.189","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.select (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async CareerGuidanceSession.findAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1140:21)\n    at async Promise.all (index 1)\n    at async CareerGuidanceSession.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listSessions (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/career-guidance.service.js:45:44)\n    at async listSessions (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/career-guidance.controller.js:6:46)","timestamp":"2026-08-31 08:48:17","url":"/api/v1/senior-secondary/career-guidance","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":62.72,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/career-guidance","requestId":"df131574-1c9b-4606-aed2-73ab8b9bfab4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-08-31 08:48:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/career-guidance/stats"},"durationMs":421,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:18","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/senior-secondary/career-guidance"},"durationMs":471,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:18","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.08,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"29965662-4ec4-4aca-8ea7-bb5c163dbf63","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:48:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/senior-secondary/career-guidance"},"durationMs":394,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:19","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.79,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5a7bed93-ab35-4834-8940-b45936f21ef5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:48:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.58,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"54d2c4f1-3028-472e-b259-33af96cfeabb","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:48:21","userId":null}
{"data":{"from":"/dashboard/senior/career-guidance","href":null,"navId":null,"text":null,"to":"/dashboard/profile"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:22","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/career-guidance","navId":null,"to":"/dashboard/profile"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:22","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":429,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:22","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.41,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0fa25994-cd31-4b72-a622-c8fe76ab3f0e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:48:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.71,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"18b4fe56-1f7c-479d-b4d4-9c459ea8e7c2","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:48:22","userId":null}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":348,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:23","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":83,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:23","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.48,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"176c8e87-2214-4a39-b592-45344f3692d9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:48:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.69,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d80b383f-f0bc-4fb2-a821-077f4ec3987a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:48:25","userId":null}
{"durationMs":7.7,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"c92d04d0-4623-47fe-91ef-62dac87cca33","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:48:25","userId":null}
{"durationMs":48.71,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"dba1a6e3-c3db-41dc-829f-9cf87b3ee8a6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:48:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":86.2,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"94916442-a8f7-4be8-924a-b19abae82abe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:48:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":81.9,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"4e9b586d-f777-4b8c-b914-e2e146984e30","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:48:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":88.2,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"cd44fc60-d61e-41d1-9981-8010e8689e15","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:48:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":3.72,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"63ba4457-8168-4678-aa79-87f7c26dd422","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:48:26","userId":null}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":351,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:26","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":375,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:26","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":429,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:26","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":443,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:26","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":451,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:26","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.24,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ef7f38ff-7154-41fe-a4aa-1a3ddbe55906","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:48:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":346,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:27","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.88,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d4dd65df-f653-46ab-a2d9-b42f39fc4ad8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:48:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":78,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:48:29","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.89,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dd2f2096-a270-46f4-afdf-22ee3922f6fe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:48:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:49:00"}
{"durationMs":95.05,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/stats","requestId":"c37b9aa9-82eb-44a3-8a86-662f93315963","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":156.44,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/vitals?limit=50","requestId":"c8b92aa2-fe39-4dc8-b305-b6a93b51a1b0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":163.04,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/records?limit=100","requestId":"9b8abf60-f891-41f1-9472-77629f5dc09d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/health","navId":"1788155342765-150598","text":"Health"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:07","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/profile","href":"/dashboard/health","navId":"1788155342765-150598","text":"Health","to":"/dashboard/health"},"durationMs":138,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/health","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:07","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/profile","navId":"1788155342765-150598","to":"/dashboard/health"},"durationMs":177,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/health","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:07","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/health","href":null,"navId":null,"text":null,"to":"/dashboard/nurse"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/nurse","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:07","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/health","navId":null,"to":"/dashboard/nurse"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/nurse","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:07","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":94.11,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"71593774-4ad8-4046-8719-66adc3b3f65e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/health/stats"},"durationMs":434,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:08","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/health/vitals?limit=50"},"durationMs":516,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:08","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/health/records?limit=100"},"durationMs":528,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:08","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.33,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6166cb8f-a91f-4423-a960-2e7e9ef9946e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.99,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"e7ecf729-0fcb-41e4-bd30-cdbf511cd167","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:49:12","userId":null}
{"data":{"from":"/dashboard/nurse","href":null,"navId":null,"text":null,"to":"/dashboard/profile"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:13","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/nurse","navId":null,"to":"/dashboard/profile"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:13","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":401,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:13","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.63,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8750e3c2-ee26-4824-8d4a-1cd57e3e07bf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.2,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"cb771b22-4082-4687-a3e6-d82783feb1de","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:49:13","userId":null}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":354,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:14","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":72,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:14","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.23,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4e20a23b-6f57-4c0e-ba6f-a928cb6d6a28","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":91.74,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/billing","requestId":"3735251f-c2bb-4eb8-8575-fbca5e28a1a1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/billing","navId":"1788155361578-232099","text":"Plan & Billing"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:25","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/profile","href":"/dashboard/billing","navId":"1788155361578-232099","text":"Plan & Billing","to":"/dashboard/billing"},"durationMs":557,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/billing","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:25","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/profile","navId":"1788155361578-232099","to":"/dashboard/billing"},"durationMs":557,"event":"NAV_STALL","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/billing","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:25","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/profile","navId":"1788155361578-232099","to":"/dashboard/billing"},"durationMs":577,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/billing","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:25","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.84,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b88d521f-4efc-4253-8345-d4054d4b66da","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.96,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"2349ae3b-4e17-4481-a495-1e629714da26","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:49:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.55,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"87a22f00-7ea3-499b-b331-8cef71928870","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:49:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/billing"},"durationMs":430,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:26","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":426,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:26","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":415,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:26","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.36,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4aab3ac9-b753-4edb-8af5-600fd13e8bd0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.31,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"57996f00-bc77-44b2-8043-a804758a2168","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:49:28","userId":null}
{"data":{"from":"/dashboard/billing","href":null,"navId":null,"text":null,"to":"/dashboard/profile"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:29","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/billing","navId":null,"to":"/dashboard/profile"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:29","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":339,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:29","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.73,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9eb3e131-8d62-4acb-a262-4fe172ad03d4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":0.9,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"db486f8f-f395-4cab-b965-ea2fbd10b174","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:49:29","userId":null}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":326,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:30","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":72,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:30","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.65,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"554e5345-ed23-49f8-9817-88093364714f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":84.73,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/audit-logs/stats?days=7","requestId":"bac4fb4b-0d18-4e3b-bbb0-7fe41917c61c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/settings/audit","navId":"1788155369470-572172","text":"Audit Logs"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:33","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/profile","href":"/dashboard/settings/audit","navId":"1788155369470-572172","text":"Audit Logs","to":"/dashboard/settings/audit"},"durationMs":583,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/settings/audit","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:33","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/profile","navId":"1788155369470-572172","to":"/dashboard/settings/audit"},"durationMs":583,"event":"NAV_STALL","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/settings/audit","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:33","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/profile","navId":"1788155369470-572172","to":"/dashboard/settings/audit"},"durationMs":746,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/settings/audit","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:33","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.79,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"654f0cc8-571a-4984-9633-d56bc6f5cad6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":234.01,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/audit-logs?page=1&limit=30","requestId":"5d5e8228-3733-4c4b-a0e0-f678f6a4d87a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/audit-logs/stats"},"durationMs":426,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:34","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/audit-logs"},"durationMs":604,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:34","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.42,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"35fbf87e-b04b-4e16-93c3-875bcd402196","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.57,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"f6322272-5471-4921-ada8-ede639bbe682","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:49:49","userId":null}
{"data":{"from":"/dashboard/settings/audit","href":null,"navId":null,"text":null,"to":"/dashboard/profile"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:49","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings/audit","navId":null,"to":"/dashboard/profile"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:49","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":401,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:49","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.83,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f7697d6d-0bc5-4be4-8922-88904a13c535","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.25,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"cf402a63-dabe-4654-a201-ccefd6b688c8","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:49:49","userId":null}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":345,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:51","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":81,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:49:51","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.95,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7d9dc27e-8ebe-4592-a6ae-9205061731f2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:49:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 08:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:50:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad0773c3-dcb5-4c20-ba6b-dc9128ee7f56","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:02","userId":null}
{"durationMs":107.81,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"76dda5b3-c775-4301-bd0b-84f2db9526ca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:50:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":100.44,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"60d7ec7a-cf02-4f91-8884-b1d419cda4ef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:50:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":456,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:27","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":444,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:27","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.69,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0fa7c53e-8390-4485-857b-5f7726a482d6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":201.89,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/documents?page=1&limit=20","requestId":"e1a5aa83-9eee-4022-9670-8e18ae025a4f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/documents","navId":"1788155427315-941980","text":"Documents"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:31","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/profile","href":"/dashboard/documents","navId":"1788155427315-941980","text":"Documents","to":"/dashboard/documents"},"durationMs":602,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/documents","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:31","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/profile","navId":"1788155427315-941980","to":"/dashboard/documents"},"durationMs":602,"event":"NAV_STALL","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/documents","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:31","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/profile","navId":"1788155427315-941980","to":"/dashboard/documents"},"durationMs":717,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/documents","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:31","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":93.07,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"62dfb8e4-1141-45a3-bd08-68c7fbcb6e08","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":317.31,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/documents/categories","requestId":"700937ff-de60-45c0-91ce-8e8428c82f71","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/documents"},"durationMs":545,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:32","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/documents/categories"},"durationMs":691,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:32","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.6,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"16ca1800-e4d6-4050-b13f-55587d2fa6a3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":89,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/documents","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:38","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.7,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9c741289-63bb-4473-9c25-ababd148c067","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.7,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"942fe3e4-f7f2-4106-ba44-0ecb28b9b22d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:39","userId":null}
{"durationMs":147.06,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"fde1b426-c757-4969-8fd8-499d88a256aa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:50:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":226.01,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e13d8284-8be1-4e74-b7e9-d96e9f6d09d1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:50:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":206.82,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/documents?page=1&limit=20","requestId":"ebf67bc5-6371-4d2c-bb35-3f77f7c24fa6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:50:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":220.9,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"2cd4f350-97c3-4fc4-bf13-9ec594554201","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:50:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":251.17,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"fe7a0284-b27e-44ee-8d3b-833f06ab4d45","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:50:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":270.13,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/documents/categories","requestId":"8e50f62c-ae95-4b1c-ba75-bf4cf5a083db","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:50:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":504,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:41","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":593,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:41","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/documents"},"durationMs":602,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:41","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":685,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:41","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":686,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:41","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/documents/categories"},"durationMs":701,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:41","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":80,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/documents","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:41","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.46,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"53d5117e-0b62-4405-a479-bdbb2bd53184","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":122.51,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"82111187-ead1-4256-a663-a5c17edc5dbc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":156.37,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"039cd82a-c82b-404c-a675-9fb18f91feb2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":186.52,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"135c2106-a23b-4928-b00c-998ee98887ab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":191.6,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"3d33ece3-a067-4adb-bccf-80136010a520","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1788155438387-636947","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/documents","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:42","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/documents","href":"/dashboard/students","navId":"1788155438387-636947","text":"Students","to":"/dashboard/students"},"durationMs":394,"event":"NAV_PATH_CHANGE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:42","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/documents","navId":"1788155438387-636947","to":"/dashboard/students"},"durationMs":502,"event":"NAV_RENDER","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:42","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.31,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"505b99e6-b2d6-4957-ba7a-0de69e615dd1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":465,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:43","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":536,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:43","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":539,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:43","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":541,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:43","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.93,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3f0e012f-7c03-4446-ab53-193615593f09","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.47,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"fab569c0-734a-40e5-852a-98f19ff83e60","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":85.41,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students","requestId":"0152665b-9a25-4097-bef2-1b08c9a7849e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"ID Cards","name":null,"type":null},"durationMs":40,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:47","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":493,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:47","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":500,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:50:47","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.44,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f2fcf113-4fe3-4fb6-990a-085169e53333","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:50:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:51:00"}
{"durationMs":151.67,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?status=ACTIVE&limit=100","requestId":"aa9c685e-04aa-4318-94e5-c0b1a9f5b73a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:51:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Student Clearance","name":null,"type":null},"durationMs":58,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:51:04","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":793,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:51:04","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.07,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"95d8c02a-75ba-4cc1-9649-c66fce06578e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:51:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":110.76,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"b68d9d85-a1b3-4ca5-9a42-58455039ef2b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:51:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":131.92,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/assigned/cmp8gtsoi012u8bcndzn5oyhm","requestId":"4166a281-26e4-4203-948b-5d5f486da3d9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:51:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":144.75,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/borrowed/cmp8gtsoi012u8bcndzn5oyhm","requestId":"4d0e9404-d3e1-4ad5-8ce3-1e45a59f530c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:51:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":210.83,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/cmp8gtsoi012u8bcndzn5oyhm/fees/summary","requestId":"125d3970-99da-4e16-8cd8-46f377ef1f96","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:51:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"LNLevi NdegwaADM-2025-0104","name":null,"type":null},"durationMs":39,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:51:09","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":582,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:51:09","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/inventory/assigned/cmp8gtsoi012u8bcndzn5oyhm"},"durationMs":602,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:51:09","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/library/borrowed/cmp8gtsoi012u8bcndzn5oyhm"},"durationMs":624,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:51:09","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/cmp8gtsoi012u8bcndzn5oyhm/fees/summary"},"durationMs":667,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:51:09","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.42,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7d59bebf-f29f-4b38-ba27-58c83fbc59b5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:51:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":136.15,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/assigned/cmp8gtsoi012u8bcndzn5oyhm","requestId":"250651d7-b83c-4437-a0f5-7a80012d8223","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:51:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":142.41,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/borrowed/cmp8gtsoi012u8bcndzn5oyhm","requestId":"dcfbe3f6-a9bb-496e-8b19-d59f1546f163","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-08-31 08:51:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":198.01,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/cmp8gtsoi012u8bcndzn5oyhm/fees/summary","requestId":"40dbaf61-442b-4513-87ea-244ad56baaf7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:51:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"LNLevi NdegwaADM-2025-0104","name":null,"type":null},"durationMs":34,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:51:10","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/inventory/assigned/cmp8gtsoi012u8bcndzn5oyhm"},"durationMs":469,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:51:10","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/library/borrowed/cmp8gtsoi012u8bcndzn5oyhm"},"durationMs":477,"event":"API_ERROR","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:51:10","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/cmp8gtsoi012u8bcndzn5oyhm/fees/summary"},"durationMs":534,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:51:10","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.48,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b7ca2307-d8e9-4733-a935-c8ee22606ee7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:51:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.65,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"7c10044e-fe63-4728-9dc2-5bfbe7910f89","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:51:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.78,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2d202110-17ba-4f6b-aed2-bfbd36826b90","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:51:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":455,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:51:41","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":411,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:51:41","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.51,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8f412a33-79ad-4a7f-8187-bc3aed86a10c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:51:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.84,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"e74194d2-4d12-4b4d-988a-742516814675","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:51:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":73.62,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"fdcd958d-04df-46e3-99b4-ad7b93306e95","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:51:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":97.06,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"472e9e40-3382-4070-a1c3-95a6f5395a60","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:51:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Dashboard","name":null,"type":null},"durationMs":325,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:51:59","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":457,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:51:59","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":465,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:51:59","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":484,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:51:59","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.16,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"416c6e33-8f1d-4b65-aecc-5c00258beacd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:51:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:52:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":122,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:52:17","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":43.34,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a854a411-b4b1-4d11-b926-0686b62b58b5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:52:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":78,"event":"UI_CLICK","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:52:36","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.47,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"22ca719e-0d93-49ab-b046-c16379c17228","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:52:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":236.33,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"76617f9e-3a7f-4438-9e81-9314b233dcc9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:52:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":231.13,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"82e7f37b-fc67-450b-9116-477b319ba2c0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-08-31 08:52:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":599,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:52:42","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":620,"event":"API_RESPONSE","ip":"154.159.237.189","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-08-31 08:52:42","userAgent":"Mozilla/5.0 (Android 15; Mobile; rv:154.0) Gecko/154.0 Firefox/154.0","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.8,"ip":"154.159.237.189","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c542eece-b2ab-4a68-86a7-3ee84026beda","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:52:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 08:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:55:00"}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"474a5c45-bb7a-4122-9cc1-40a5b56b54cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 08:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Weekly job triggered","service":"cbc-sms","timestamp":"2026-08-31 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Starting weekly fee clearance email job","service":"cbc-sms","timestamp":"2026-08-31 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 09:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] No current term found for school Nairobi Comprehensive school","service":"cbc-sms","timestamp":"2026-08-31 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Found 0 cleared students for kisii Highschool","service":"cbc-sms","timestamp":"2026-08-31 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Found 0 cleared students for Bungoma","service":"cbc-sms","timestamp":"2026-08-31 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Found 0 cleared students for CBC Model Primary School","service":"cbc-sms","timestamp":"2026-08-31 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Job completed in 0.07s. Processed 0 students, sent 0 emails","service":"cbc-sms","timestamp":"2026-08-31 09:00:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aeebf797-904b-4c2a-b3cf-832dd7698ad7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 09:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:05:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"66f727ce-649c-4e46-b732-5fc93fd5e91e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 09:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 09:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:10:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"08f22cd4-016b-4481-8fb2-c894ac94ac18","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 09:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 09:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:15:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e7716a92-7332-468d-98c3-6ce0a970b664","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 09:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 09:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:20:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b4dfa176-d0df-4778-a9bc-0347da3c33be","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 09:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:25:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8fc5e4af-7b7c-417a-9745-b855811295c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 09:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:28:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 09:30:00"}
{"level":"info","message":"[CRON] Attendance alert started","service":"cbc-sms","timestamp":"2026-08-31 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-08-31 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 09:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:30:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"998107e6-1c98-4911-8f1b-0e6e0749f16d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 09:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:35:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"328f63ee-6b53-41c3-aa36-03a40b01de9a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 09:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 09:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:40:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9db6c4a-d9b2-4217-a405-998e1dc3dbf4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 09:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 09:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:45:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46e34a5b-f86f-4d07-96ef-608d46d2fcdd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 09:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 09:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:50:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8726d51d-878c-46e0-9298-cefbd4c0676b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 09:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 09:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:55:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6fcdaafc-ec81-4d6f-ba99-c283e771d110","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 09:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 10:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:00:00"}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"150367cb-9405-401c-b53e-4183edb073aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 10:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:05:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9030b998-9208-4a41-87df-05c6802fa18f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 10:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:08:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 10:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:10:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8eb24f24-dc0e-4d4c-8330-53ec4bff5004","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 10:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 10:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 10:15:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4247b3cd-3f9f-4ecf-af11-539a2fe51f79","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 10:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 10:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:20:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"164a9114-2719-466d-ba2d-41665b86bdac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 10:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:25:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e0ad8d6-eea9-43b8-ae7f-97304020cc5a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 10:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 10:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:30:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4e1eb1fe-0b4d-42d9-8f00-d83f17271d59","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 10:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 10:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:35:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4316a18e-0dbf-4082-b4fe-97f4e0be05ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 10:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 10:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:40:00"}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e7facc29-cbf9-4e1a-99c5-bd51e4d46ea8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 10:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 10:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 10:45:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9fc452b6-8604-4f47-a7a0-ce98b4c28807","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 10:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 10:50:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ac8ebe11-1a53-45cb-a0e6-835908d2d75a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 10:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 10:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:55:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"38f833c8-8361-4919-918d-0089a341ad6a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 10:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 10:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 11:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 11:00:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b0d33dad-d5d7-46f5-b180-03852faa960c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 11:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 11:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:05:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d528f05-56da-4e29-8b23-8d911de489b3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 11:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 11:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:10:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d974142e-6643-4594-bca8-138fecdc5daa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 11:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:15:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1e902d24-bb67-47a8-b07e-60dc011e6bbb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 11:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 11:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:20:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e2dcb155-c972-46e3-92f6-1d3a29898cac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 11:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 11:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 11:25:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6db9d17c-387d-47e3-8889-cefd19ca5061","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 11:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 11:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:30:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c4d00273-c800-4a4a-8739-7c3bf08866e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 11:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:35:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c1981bcf-29ad-43a1-b0d0-4fac8d2613eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 11:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 11:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:40:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d19e7e99-7261-4802-82a6-bd76cbaa0670","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 11:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 11:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:45:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ae71216-ea9a-40f3-bca3-047aa704888a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 11:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 11:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:50:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"630284be-4e97-4d5e-adbb-8900779028a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 11:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 11:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:55:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"025ca3aa-bbec-4fc9-a6c3-9f2859ff6d56","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 11:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:58:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 12:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:00:00"}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"306c03f6-52d9-440b-bc00-132eee522688","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 12:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:05:00"}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"60da1cda-e9af-41b9-bed4-9dc26791e2ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 12:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 12:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:10:00"}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"40db2b7f-dc3d-455e-aa00-28e894d34e4e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 12:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 12:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:15:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b98ac90e-706a-4c27-b4ee-a0489112e426","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 12:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 12:20:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 12:20:01","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:20:01"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84774974-a0b3-446a-8a03-fef8a263b397","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 12:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 12:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:25:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"80affe0f-948b-44b3-afe9-8fc7f215bea2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 12:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 12:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:30:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2c5409a9-40cb-4486-8aa8-17cbae38c107","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 12:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:35:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6e732ea1-bc8b-42e3-877b-8fab1876b2b0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 12:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 12:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:40:00"}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"246186e1-a4b2-4e83-b25a-4d2cc8c7a769","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 12:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 12:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:45:00"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9e3b669-3611-4854-8f3d-4b1e48bcafba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 12:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 12:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:50:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f05f123-349c-45be-8b7f-a78a892fa590","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 12:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 12:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:55:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7757b55-7082-4fad-b9a9-d3ef93b9850f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 12:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 13:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:00:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"42d0446e-d55f-4e22-8c15-8d91933bd3e4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 13:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 13:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 13:05:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"20e6a266-4d39-4f81-b5ad-cca9494f17a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 13:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 13:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:10:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb67ad21-6961-471a-8a54-e6e1e557f4ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 13:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:15:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3fcb7874-69b5-480a-abc8-34ca038efccb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 13:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 13:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:20:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9837d02-426a-4b70-98be-7e7190125ab2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 13:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 13:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:25:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e652f8db-6fc4-468b-8e6b-8072274cfc3c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 13:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 13:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 13:30:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6e1430bb-edfa-40ff-958c-91be6b9e47a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 13:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 13:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:35:00"}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9239a44a-a17e-4285-928a-e73c3bbb68cb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 13:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 13:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:40:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f4a25b67-f36a-496e-b492-16e019865d55","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 13:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 13:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:45:00"}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9a536d1a-3a51-42fd-b60a-e0ee06106db0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 13:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 13:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:50:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b5419c6f-59d9-40c1-aeec-1c1eddc0172e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 13:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 13:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:55:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"be7eace7-0dc4-4a7d-8530-7f67b0583d87","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 13:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 13:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 14:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:00:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5d1c7ef-0779-4cfc-8236-996233442f12","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 14:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 14:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:05:00"}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a213ad35-2a17-4048-aff8-1b6c2b88d1da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 14:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 14:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:10:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"34129575-8fcc-4c04-bb95-e9035347994c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 14:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 14:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:15:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c47f88f4-5421-410d-b184-b193337d4bba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 14:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 14:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:20:00"}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46bee08c-ee1e-4188-b261-659252221240","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 14:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 14:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:25:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d58c11b9-4c80-4dc4-aed7-caa80812b7e9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 14:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 14:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:30:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"57d12a24-8518-47b0-a39e-5aec2c44aa1a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 14:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:35:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f088e381-7280-46f8-96ff-b43dd51af3ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 14:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 14:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:40:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f538992d-d1ca-4fab-9da8-c807ccd5806b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 14:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 14:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:45:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"82e4e899-a0db-45cf-95e0-919dda713703","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 14:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 14:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:50:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"461f1010-76b0-4091-b88e-caaed4f62219","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 14:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 14:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:55:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"344a6d1c-3e20-46a4-bdc8-460b287a33e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 14:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 14:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 15:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 15:00:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ca0b50ed-22f9-495b-ac0a-696e99873ba6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 15:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:05:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98e1d235-ab82-48d1-8291-f32f1b260e4a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 15:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 15:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 15:10:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"49d56334-e31b-433f-b304-f7b4452fa35c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 15:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 15:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:15:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"78a283f6-b2dc-43e9-bb42-154f2604a13d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 15:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 15:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:20:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1045da94-e6da-40eb-bca1-b50fe953c7a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 15:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 15:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 15:25:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bc932091-82ba-4133-97ea-6d5872f0fd94","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 15:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 15:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:30:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f41f671a-6d55-431e-a23c-8b2814c8320f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 15:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 15:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:35:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e2a5fef2-81d2-4f2b-aa91-502a696cb89a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 15:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 15:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:40:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d22a862e-5d58-4830-b49f-4f7b5e52a4fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 15:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 15:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:45:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a027d7e2-3192-4d21-817b-690f605c505d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 15:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 15:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:50:00"}
{"durationMs":1.71,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"11c4f17d-1ac9-452c-9bf7-9984744e5d1c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 15:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 15:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:55:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70a4e570-5d0f-4ad5-a01b-08e34b678e0e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 15:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 15:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 16:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:00:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9f4cf83c-cd03-4566-aae7-8ce9ac6aaa8f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 16:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 16:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:05:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e07b924f-a237-4fc6-83a5-67f7cae2d824","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 16:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 16:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 16:10:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0e7d94a7-13bd-4fa2-867e-13ecb159197d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 16:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 16:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:15:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d1bc8b5-acd6-43fb-8ea5-2ad1046a633e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 16:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 16:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 16:20:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c42dbd45-c802-4a47-8a13-ef2f621b8972","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 16:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 16:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:25:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a474929e-1446-4f41-868f-761272c7a631","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 16:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 16:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:30:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6162882f-9929-45c0-af25-ea089a2302e9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 16:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 16:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:35:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1f277a17-07e6-482d-87c9-f9cd1d24e51a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 16:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 16:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 16:40:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7c9aebe1-d25d-45eb-9ec0-4bacadc1f167","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 16:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 16:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:45:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"955a9bd7-ccb6-44e2-bbc9-aeb423832b50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 16:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 16:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:50:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25b56fa5-c731-4654-a8a6-4424b4910fe5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 16:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 16:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:55:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ecae9780-2051-4d99-94ab-27f68f4ad697","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 16:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 17:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 17:00:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f7f00b63-db0b-4dd8-8449-ac16a31fcf54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 17:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:05:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ee29797-a22b-4523-a4ed-5695b9205dad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 17:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 17:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:10:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"79e19a71-9408-4e0a-aa4e-f2e8603d2450","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 17:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 17:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:15:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"246ba6ae-9cc6-4c89-8827-b52c2798c0fd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 17:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 17:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:20:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e05f3b37-202d-4a5b-86cd-77ebb22e9bda","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 17:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 17:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:25:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b58fd388-e843-4acc-b197-56975b72d1f8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 17:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 17:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:30:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1fde8c9e-a080-4df3-acd0-722df18e78a3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 17:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 17:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:35:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ba1aa033-1046-456e-94b9-4529e1a351e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 17:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 17:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:40:00"}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8fa0ecbe-cc3c-4b43-9151-3b76177671d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 17:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:45:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"90794a5c-13e4-4796-aec1-9e91d03bd2a2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 17:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 17:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:50:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1ac4f1b0-20cc-4a50-bf66-eb2248e75c2f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 17:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 17:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:55:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f69d8d63-227b-47c5-8de5-0a27df4d5197","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 17:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 18:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:00:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"718cdf9f-7c51-44e9-bcb9-18c6fb9d366e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 18:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 18:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:05:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4e44710a-547c-46c7-8eac-c05bbf1b0e9a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 18:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 18:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:10:00"}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"94574d29-7989-48ce-af1f-45a6a6bf22e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 18:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:12:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 18:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:15:00"}
{"durationMs":1.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a0a0e375-d3e5-463d-9bfe-a2552b0f4e54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 18:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 18:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:20:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d3bb23b-6244-412b-b438-f687b24f8382","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 18:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 18:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:25:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ff5aa62-b7f1-44b3-bba1-54a2ebe93e1c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 18:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 18:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:30:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"af2af9e6-85e2-4e76-9977-40cae3c19772","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 18:30:02","userId":null}
{"durationMs":1.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9097981-87e1-415a-8e24-ef435f023a22","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 18:30:41","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 18:35:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 18:35:01","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fd3046bf-b015-4554-8453-5f459f6be3e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 18:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 18:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:40:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8ea15a8-0d94-4007-8c5b-69a4b767d6bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 18:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:43:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c65028f0-4e1a-4692-b508-4ca47e3b731d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 18:43:58","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 18:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:45:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f4516790-5448-4f83-adf3-5bc53a9dfe61","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 18:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 18:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:50:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0e49e7ca-2c44-4520-9fa7-6b16ffb29e90","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 18:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 18:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:55:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4fe2693f-91bf-45a1-b292-50928bd66255","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 18:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 19:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:00:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e9d13eb-fd04-464e-98fe-fb723698c1e9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 19:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:05:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa8b1676-c815-4a4a-b865-a901c122f1c4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 19:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 19:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:10:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e9df6988-9bf3-4d40-93de-770c54ad9781","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 19:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:12:00"}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f8c117e-c4ee-421c-8beb-20a6df3b79df","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 19:12:20","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 19:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:15:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"872fb736-f391-4a36-b46f-63a0d2dd1c51","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 19:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 19:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:20:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"104b4dfd-aa69-4bc5-8e96-f87147582ae1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 19:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 19:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:25:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0deee7a0-78e8-4a22-b7e5-c43838040723","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 19:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 19:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:30:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"81f6b638-413d-4529-b436-dc1668cb2e6b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 19:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 19:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:35:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"73157468-1780-4615-acc0-8a9b3103d28f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 19:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 19:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:40:00"}
{"durationMs":1.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aed47e51-e9ae-4b49-b30c-f676cbbada07","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 19:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 19:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:45:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"681ff5ec-5850-4629-81a9-a4b66d7a4544","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 19:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 19:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:50:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b6d0be98-161e-44d4-836b-661ed75d360e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 19:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 19:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:55:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"102b844c-a251-4f12-a86c-10acbdda3fc3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 19:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 19:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 20:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:00:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fad57981-89de-4b26-b6aa-46d5a8cb0ad5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 20:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 20:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 20:05:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b58d5eb-d2a9-4316-85df-981e8cddcf04","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 20:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 20:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:10:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fed28f11-e9a3-4d2b-9ae4-ee60554df4f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 20:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 20:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:15:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"13e1879b-44dc-4442-8036-88aab2ef7fdf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 20:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 20:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:20:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a3139cc-7d3a-49c4-8430-e71a4d7dc556","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 20:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 20:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:25:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"69745f5b-e07b-4b07-8aa1-829a820fcd8a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 20:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:26:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8513bfe9-e1e9-4e93-8219-f81e6db5e59c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 20:26:12","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 20:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:30:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b9c8b61-4b0d-4254-b965-10fa70d3de24","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 20:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:31:00"}
{"durationMs":1.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05fa95d5-67a2-4a90-b353-a2f12df46e98","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 20:31:06","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 20:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:35:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9d4957c-20ef-46ed-a904-9aa317e3ec32","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 20:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 20:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:40:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3d852f1-7ea2-4317-8870-e77b8a119bbf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 20:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:42:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fbf61b6f-3b7e-4a84-9dbb-c6d6feaac684","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 20:42:00","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 20:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:45:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"79f5a652-3978-4b40-ad51-86369b3aba1e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 20:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 20:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:50:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"555a1b7c-96b1-4907-af64-1e0287c4d485","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 20:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 20:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:55:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae3e8a4b-605a-4041-a113-15182a7d4919","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 20:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 20:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 21:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 21:00:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ff3daad-c4ab-4899-8d37-0ed99485a637","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:03:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6555bad1-9b5c-459e-aec7-d221e89cd3b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:03:08","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 21:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:05:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aadf929a-f8e3-4517-840d-7d8fb057094b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:08:00"}
{"durationMs":2.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dc16d08f-2b2a-4c79-8bc0-12b35c42cf26","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:08:43","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 21:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:10:00"}
{"durationMs":1.67,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"22d92f82-b88e-4a4d-b518-23e3bc7374ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 21:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:15:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"079644a9-adb9-4963-a62d-b39f3ca21fb5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:18:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 21:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 21:20:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3effb293-8886-4ba6-a561-bedf913ac177","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:23:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f45e5122-f9db-4f40-935f-c5453dfca969","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:23:37","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 21:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:25:00"}
{"durationMs":1.62,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6e93f044-63d1-499f-ab6e-3377aeaa38af","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 21:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:30:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5c2270b8-fc32-45df-aaf4-8ae45ea6aec9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:32:00"}
{"durationMs":1.68,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"21e9c46b-ae12-474d-8292-87f7b9e5790f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:32:51","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 21:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:35:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f1deb30-b1b8-498a-8df1-8713ee3736a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 21:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:40:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4048750b-046e-4136-b990-69e03dd37fc6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 21:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:45:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"71290f3e-9f77-42c3-9478-4307c62394e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:48:00"}
{"durationMs":1.66,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d6ecd854-646a-4156-847d-fe1bca0e2bc6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:48:39","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 21:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:50:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce37b5e2-5b1a-4c0e-b595-6329b4766db1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:50:01","userId":null}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b48a9a5-2c48-4b58-ae15-3500df2cb62a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:50:30","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 21:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:55:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4def103f-361d-4bf2-9f31-13bfe3b219c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 21:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 21:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 22:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:00:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"97cf150f-4dd3-4fab-a771-28b6153d8455","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 22:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 22:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:05:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"30ca8e30-590c-4ccb-b993-13b0c6da9edb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 22:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:08:00"}
{"durationMs":1.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c6080066-7fb1-40f6-b6c4-4c781027e8ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 22:08:35","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 22:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:10:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d5a99192-f4f3-4e80-81e3-ac937fc62c58","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 22:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 22:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:15:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cb1fc309-ccd8-48e7-896e-5722b0f9c255","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 22:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 22:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:20:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"33576a1b-0424-42dc-af93-2123958b1ca7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 22:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 22:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:25:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da7ffb3e-62b9-4812-a641-eac30881a337","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 22:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 22:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:30:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce45f185-5889-46bf-98e7-c3883e6d2bb7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 22:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 22:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:35:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2a8a93c9-237a-4537-a733-d53763c75eb0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 22:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 22:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:40:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3f47dcd3-b41d-4278-97e5-b9dc606ef570","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 22:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 22:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:45:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"40d8a524-23d1-4fab-88e7-2358be059fc6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 22:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 22:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:50:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e3958eca-9c92-466e-a444-2510883bbe16","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 22:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 22:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:55:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ba6f441f-a274-4325-bc7d-dfc9b75bdb10","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 22:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 22:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 23:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:00:00"}
{"durationMs":2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8db02cc0-3c79-40cc-955e-ff15b44944ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 23:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 23:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:05:00"}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"700253ff-2a88-4c51-b786-7e8ae79af433","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 23:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 23:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:10:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"31ceacaa-764c-482a-b740-8606e7900502","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 23:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 23:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 23:15:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e37a7741-0628-4c89-b1d3-88aed7729390","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 23:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 23:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:20:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d540b58-c808-4437-ae7b-b61ae662e89d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 23:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 23:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:25:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9dcfbf72-ce27-4043-87b2-fbd345b9644c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 23:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 23:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:30:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"476d9e80-e3b8-4b6d-bc5f-d0836506382d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 23:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:35:00"}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4dfd095d-c27e-4853-a96c-8b0eab924a29","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 23:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 23:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 23:40:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2713a0ad-07ac-4045-8279-9d9d9cacae6c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 23:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 23:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:45:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"35910c7a-0430-4f5d-bba9-f78430c2b333","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 23:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 23:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:50:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3dc2023-a4b6-467f-896c-965fa6e2951c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 23:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-08-31 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-08-31 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-08-31 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-08-31 23:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:55:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6e227b8f-ebe9-4723-8fbd-207219c803dc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-08-31 23:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-08-31 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 00:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 00:00:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0de76f21-5dd3-42d3-8d61-301ada429df5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 00:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 00:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 00:05:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a28cc676-b8f9-4678-8403-b4b5bddd2063","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 00:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 00:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:10:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"664cf889-aae2-4546-9dc7-66130395e4a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 00:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 00:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:15:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f47383a-dbf7-4b6e-a6a8-07ee84f2de32","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 00:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 00:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:20:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"103d720d-981e-49af-aa41-6f7b3a726f55","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 00:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:23:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 00:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:25:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8dceec89-b7b2-4751-abfc-8e55804598f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 00:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 00:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:30:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d87d8d91-6c9d-4781-bb52-b284e9578613","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 00:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 00:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:35:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cbd3b1e7-4aff-4f27-8cc7-91963e139467","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 00:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 00:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:40:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ff0d7c5f-399c-4e22-a3d2-25b603a1b520","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 00:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 00:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:45:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1af7173b-4bf6-4d6e-90bb-c78c77effe47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 00:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 00:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:50:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1c077c1a-6890-4b9b-adf7-2b304a6feef2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 00:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 00:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:55:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cf352a92-05e2-4bf4-abb7-1d451367013f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 00:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 01:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:00:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cc3c6c7e-65a7-41ff-a521-c52ec45956d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 01:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:05:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77575a5e-137b-411c-8a65-87f9423d6821","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 01:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 01:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 01:10:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df108e62-758d-4c10-8b09-9cc1b25f952a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 01:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 01:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:15:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7cfd3728-67da-40a2-bdab-2a08aa5b55f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 01:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 01:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:20:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c0c25ccd-c9d8-4db5-b220-2817494afbd6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 01:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 01:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:25:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f7e3d5b9-a164-4e1d-bbb7-7facc6c70946","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 01:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 01:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 01:30:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"af0eea5f-c689-43e6-9e06-1423ae24b3cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 01:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 01:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:35:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"137522b3-ee63-49f5-93c4-59590233f9dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 01:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 01:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:40:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a4259baa-231f-4c6b-bd2d-90c0738a0927","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 01:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 01:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:45:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9fc29f6c-803e-4e73-af21-29aed6df405c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 01:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 01:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:50:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 01:50:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 01:50:01","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4692a9b-c073-49c3-b716-fb2d2b200837","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 01:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:55:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"661511ef-155e-4f87-80dd-9b65122e7fda","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 01:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 02:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:00:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"76607393-0b1f-46a5-a8e4-40214ae4699f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 02:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 02:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:05:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0bc7f5f1-d631-4f8b-8a47-a4ebe72bee1b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 02:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 02:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:10:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46188de8-adf9-425d-bb22-4506c8fcb6af","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 02:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 02:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 02:15:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b5b822b6-d80c-419a-94e6-8ad139763d32","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 02:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 02:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:20:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1384ddcb-f13c-43d0-9bc0-1ff57660b77c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 02:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 02:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:25:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fcb2f97b-1fcd-4766-bc5c-08c91839406f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 02:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 02:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:30:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce457151-0437-4bb6-82b7-7a1159d988bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 02:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 02:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:35:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e0b6ae00-fd95-47dc-a03e-0406cefaf4ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 02:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 02:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:40:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"325b886f-b61d-44f3-9fd0-a9c9088be596","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 02:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 02:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:45:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"90992d25-6d1a-472d-b5c4-e30c5e1e48e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 02:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 02:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:50:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a42169f6-5d2a-4814-b297-4b7d971fd5c3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 02:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 02:55:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 02:55:01","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a40cb3ad-eace-4ecf-bf5e-30b41a7ec2e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 02:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 03:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:00:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"795b5b63-bc40-4f61-87fa-410f1ade0ec8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 03:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:05:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e01fa9d8-6738-428d-92e2-b4f3c8996880","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 03:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 03:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:10:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ee7b0378-74bc-4277-8841-f444e0096fdb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 03:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 03:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:15:00"}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8b19f0cf-8322-4658-86aa-e78ea6b47e80","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 03:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 03:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 03:20:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0d650c30-272e-4ab1-9e50-bc3774917c45","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 03:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 03:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:25:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"237094ef-7be8-4cf7-b9f6-e79cdc107361","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 03:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 03:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:30:00"}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"babefa91-2f9f-4eca-8b8f-e704e23aa84e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 03:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 03:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:35:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b5cbbd0-1623-49a3-b658-5a57d8f05a95","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 03:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 03:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 03:40:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"407a29f1-681d-4184-bd28-1894191abb48","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 03:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 03:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:45:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"55b8d0e4-2806-48f0-89cc-6f7496a56390","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 03:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 03:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:50:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c63d828f-509a-4beb-ae8c-217f3ecca0d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 03:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 03:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:55:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d1f6e72-9b2f-4c42-af19-776cf60cbb22","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 03:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 04:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:00:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"68479aa4-6605-4998-a15c-7dd08fccdd26","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 04:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:05:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"06fed7a1-2741-47c4-95f8-bfa1af181b12","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 04:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 04:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:10:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77b4f8da-f640-4272-9feb-50b6701b365d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 04:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 04:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 04:15:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7dce594c-459d-45a8-b3e3-d69feb593b64","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 04:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 04:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 04:20:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"66620cd1-e656-453f-a9f0-c702394c098f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 04:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 04:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 04:25:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58ffbdbd-5888-4560-809c-7402fae26068","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 04:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 04:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:30:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04f98dfd-a863-4416-807b-2f2b8799e812","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 04:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 04:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:35:01"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bc0c8b1c-0719-430e-8ced-0e7707d6672b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 04:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 04:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 04:40:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bcf0f302-6ca0-4d69-acee-8dabe9b393ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 04:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 04:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:45:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2324f7ed-62ce-442a-9606-81d1aa117937","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 04:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 04:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:50:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0852e3f6-8b86-4b8e-83f9-52d9d47e5a12","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 04:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:55:00"}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe9107da-e4cd-4f9b-a8db-aa9175e25e64","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 04:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:57:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 05:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 05:00:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6d1b14c6-3cf6-49b2-bbf7-25cb966eec5b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 05:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 05:05:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ff2f7d4f-a207-4cb5-94c2-d15a53ac88d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 05:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 05:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:10:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e9cde73f-baab-4b34-b87d-a06a136d2410","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 05:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 05:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:15:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd2364fc-7dcb-46a9-9a34-d15212f876aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 05:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 05:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 05:20:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bcbea760-f388-4c3f-b769-328de025c4e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 05:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 05:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 05:25:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0d75725-c3d0-4747-b084-ecab00b6f0e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 05:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 05:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:30:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d9cc289-7a9a-44eb-b56f-a3f5fe080ad4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 05:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:35:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"628d1b52-ef42-483f-b107-af40fa9504eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 05:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 05:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 05:40:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4efd4b39-99a1-4361-b629-7480a820c002","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 05:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 05:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 05:45:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"13910833-b9bb-49af-98e2-ea19c0d88b94","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 05:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 05:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:50:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"53b4fa4e-cb38-4119-8899-a36a5d4685fc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 05:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 05:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:55:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bac0f939-941e-4c3a-a316-4c4fb8bb96de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 05:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 06:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:00:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ac673d75-f0fb-41ab-9c3e-a2e24bc76da8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 06:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 06:05:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"177aaa20-47bb-4182-b562-ffc79d0947a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 06:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 06:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:10:00"}
{"durationMs":0.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05fac842-f8d1-4e4c-a959-9f1a62d921fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 06:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 06:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:15:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9a5ce36c-742d-4e06-a945-5a0b234d9969","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 06:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 06:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:20:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"127ed3a5-e374-4a06-90ed-eea2a37f5375","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 06:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 06:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:25:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b93f2365-d742-495c-a70a-bfd8fd07a46f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 06:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 06:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 06:30:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dfc8cc39-328e-4026-bd96-7cd8bae0f502","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 06:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 06:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:35:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4bd7f4ca-5612-4e53-a4f7-e91dce6e6bc1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 06:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 06:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:40:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d17f180e-22df-4e63-9d7a-515e7db17a52","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 06:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 06:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:45:00"}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d49a6390-043d-4022-8849-a48f43f878a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 06:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 06:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 06:50:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6dffc22-1786-4ff4-9655-22ae71ab2359","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 06:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 06:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 06:55:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a1c8745f-4f59-4b34-905e-3f46d8e455d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 06:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 07:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:00:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"679b4d77-28fd-4cc1-a1f3-8add01791829","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 07:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:05:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b4dfecdf-f60c-46ca-a0af-513bdc6cd0aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 07:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 07:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:10:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5692c4a6-4f43-4eb2-b6cf-a35ce6aa17d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 07:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 07:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 07:15:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1bdbb1d8-40c4-41b0-ad34-492da84abce1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 07:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 07:20:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0e60a249-62b7-4c31-a7e5-7df7b4e63df7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 07:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 07:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:25:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"54af0750-bf26-4078-8bb5-01d3b1bff88d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 07:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 07:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:30:00"}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9735be05-307c-4927-91e9-2c4b6b1b9e51","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 07:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 07:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 07:35:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1273b0f6-d5a3-421b-91d5-7975084202c3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 07:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 07:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 07:40:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c872fc1f-c476-4c61-95fb-07f21c890c2c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 07:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 07:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:45:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7625219-a22f-4efa-9ea8-b0436a125ce8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 07:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 07:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:50:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a02b9253-04b7-4fd7-8217-ddbdd3591e12","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 07:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 07:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:55:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f0462bd-ee31-4f59-b196-3cf655d26223","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 07:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 07:59:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-09-01 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-01 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 08:00:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-09-01T05:00:00.502Z","service":"cbc-sms","timestamp":"2026-09-01 08:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 08:00:00","totalConnections":1}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-09-01 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-09-01 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-09-01 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-09-01 08:00:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3dd8fef2-962b-4d25-aedc-311c98528b3c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 08:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:05:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a5365b7f-0770-4f5f-bf28-699bb9647073","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 08:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 08:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:10:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce0c43e9-dbae-474f-b936-4f1278c13ec7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 08:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 08:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:15:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8a447f70-5632-4b45-b288-248e5a8df8ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 08:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:17:00"}
{"durationMs":1.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d90f2634-bae1-4072-bea2-75d0b84b56f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 08:17:58","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 08:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 08:20:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5894ed7a-6428-42d4-955f-df0ea8c1fd86","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 08:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 08:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:25:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a77d6726-c6f8-46a8-a195-ada5568a0080","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 08:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 08:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:30:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f3d5f9a-e09b-441c-bff3-3d5372f1f241","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 08:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 08:35:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"716d1cbd-0063-489a-9571-b575311ef082","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 08:35:02","userId":null}
{"durationMs":1.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7736bc10-eaf2-4810-950f-c7a3889f3e3b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 08:35:57","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 08:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:40:00"}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4487a71b-745b-4e72-8a55-5074da769109","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 08:40:02","userId":null}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"032b9701-91b0-410a-b2e1-6a5ca99df5cc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 08:40:05","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:42:00"}
{"durationMs":1.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d162bad1-7be8-4b3c-b3a2-9cff7cd4c601","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 08:42:50","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 08:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 08:45:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"15e72900-1749-4ee6-b2a0-a453545ab5cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 08:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 08:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 08:50:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f7fb6177-764a-45f4-bbe3-840c1c5136c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 08:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 08:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:55:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ec74c378-d157-44ff-a734-44211d7b4ef1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 08:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 09:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:00:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b96ef098-76ad-4eb2-9afb-764c25318025","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 09:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 09:05:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b2b14c9-03bf-4a43-8986-ec55a395d951","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 09:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 09:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:10:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8157feb1-cebc-461c-960f-6f0561bdbe3c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 09:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 09:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 09:15:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9643597c-e1c8-4c51-8b9f-d36d7916fb54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 09:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:16:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 09:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:20:00"}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"89800a13-6d7e-40d3-8efd-899f6d439258","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 09:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 09:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 09:25:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"316605ed-6eff-478c-a2d9-899db4a84fa0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 09:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 09:30:00"}
{"level":"info","message":"[CRON] Attendance alert started","service":"cbc-sms","timestamp":"2026-09-01 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-01 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 09:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:30:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7d59f799-2c55-4ae4-9ae5-b38fc5512f0b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 09:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:35:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ea34daf-38a8-4e27-ba93-d85755f46cf9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 09:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 09:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 09:40:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e6894af7-15c2-44eb-811d-8f5d376566e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 09:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 09:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:45:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"130a838c-fe84-472f-8fcf-a4512a6c4584","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 09:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 09:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 09:50:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6d62865-4dc0-47e3-b1cd-df9b9b17ce5d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 09:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 09:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:55:00"}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce8dc42b-d34a-4c0e-8f0c-8a53ecc30f55","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 09:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 10:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:00:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0aef0de2-fac9-4e6d-bdcc-6b1a7a339912","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 10:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:05:00"}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ab00735-fe33-4066-8807-890a4905d878","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 10:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 10:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 10:10:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d163dde5-4aca-48df-903f-3ac9d125db3c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 10:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 10:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:15:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d135354b-2c17-40e0-95cd-a2300108d74f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 10:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 10:20:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 10:20:01","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1ceb62e1-b7ff-45e9-832b-b692160dece0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 10:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:25:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"437979fe-6086-4eb1-b267-d26bd7504cfb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 10:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:28:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"39964571-f44a-4a8d-b528-31bdcfedbb40","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 10:28:24","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 10:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 10:30:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7748fdc-62d1-4925-a5aa-14a3b8af22d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 10:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 10:35:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"21c1b41b-fa70-4bb0-91b0-a9f8b656651e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 10:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 10:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:40:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5bb5a980-72ce-48c4-adbd-efd32296609c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 10:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 10:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 10:45:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1e62a459-e674-4daa-b28a-333a75a36c86","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 10:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:50:00"}
{"durationMs":1.67,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cbe8d6b3-6eb4-4836-a05a-4d7e2d861370","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 10:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:51:00"}
{"durationMs":1.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"79171368-d9cc-42db-97d7-976a117d2783","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 10:51:46","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 10:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 10:55:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9a59894b-99f7-4e93-bcb6-25912922d827","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 10:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:58:00"}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b8a121a5-9696-48fe-b58d-ff99d0b01a50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 10:58:31","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 10:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 11:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:00:00"}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c7183f0-9800-4c33-8875-2c644f82a7ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 11:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 11:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 11:05:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"020bbaf5-4f5a-45a1-9cc0-cec85f0b5372","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 11:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 11:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:10:00"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25a6b31d-7139-421c-9d39-8940a69e25a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 11:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:15:00"}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8802a06c-10a4-430a-926c-b4fa803df236","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 11:15:02","userId":null}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5ba7bd4-dbab-4d23-aebd-d01167f7a992","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 11:15:15","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:16:00"}
{"durationMs":1.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c1515026-4729-43d9-b8f4-495b4953ab31","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 11:16:51","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 11:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:20:00"}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"97719654-3776-44cf-be21-1a5400d4368f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 11:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 11:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 11:25:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c82006be-2d86-4fe5-9f9c-786d038f5dd8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 11:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 11:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 11:30:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"195e1160-9a46-48be-bcc8-e16560a5dae2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 11:30:01","userId":null}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"59f8dea0-2c67-4beb-802e-f273ca135a46","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 11:30:50","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 11:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 11:35:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d76d863f-7720-496b-b278-2349bf27aa6c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 11:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:39:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"716bc92a-f6bd-421d-b035-b289dd088544","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 11:39:04","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 11:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:40:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d0dfe999-f9df-43f0-bc3c-2cd657d6281b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 11:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 11:45:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6afc2f2b-3474-4d51-b053-0e48b03a4d02","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 11:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 11:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 11:50:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f4596347-6b9b-4fd1-8b99-f0052f068228","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 11:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 11:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 11:55:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e808467e-7bf1-4178-ba23-1630cd39c7a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 11:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 12:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 12:00:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ab3aa1d-6d1f-497e-8a61-43db792699d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 12:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:05:00"}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1b5c297-3253-4f69-900c-0120335eec6a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 12:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 12:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 12:10:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0b1175c6-d0e5-483b-b904-cd32ebe28024","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 12:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 12:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:15:00"}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17b0bd31-7f34-47cc-be52-f1f3ed9b0194","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 12:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 12:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 12:20:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"54c0848e-04b2-4e63-9bce-33aac61d781d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 12:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 12:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:25:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ef274c1-402c-4666-8019-539eb50acb77","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 12:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 12:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 12:30:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd28c9da-0487-43e6-8804-c44705ca4d06","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 12:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 12:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 12:35:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b695a31-b292-476a-8f44-4f8fcd224be3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 12:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 12:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:40:00"}
