[2026-04-25 23:54:33] FCM SyncHooks.alerts.afterCreate.in: {"is_array":true,"alert_id":"000019dc-7105-74e3-e867-59426a1431ca","alert_type":"blood_request","division_id":"539aeeb7-75b3-423a-b65d-112aaed22f24","subdivision_id":"7f1d3e6c-ed2a-41d4-9301-8ba14ed7cd97","hospital_id":"884072e1-4125-41b5-8d60-c99254cc64f5","user_id":"0194a8b2-bd07-7123-8123-123456789abc","group_id":null}
[2026-04-25 23:54:34.006127] FCM INIT: {"pid":536741}
[2026-04-25 23:54:34.006241] FCM resolveTokensFromAlert.in: {"alert_id":"000019dc-7105-74e3-e867-59426a1431ca","user_id":"0194a8b2-bd07-7123-8123-123456789abc","division_id":"539aeeb7-75b3-423a-b65d-112aaed22f24","subdivision_id":"7f1d3e6c-ed2a-41d4-9301-8ba14ed7cd97","hospital_id":"884072e1-4125-41b5-8d60-c99254cc64f5","group_id":null}
[2026-04-25 23:54:34.006814] FCM resolveTokensFromAlert.fcm_devices_count_failed: {"error":"SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation \"fcm_devices\" does not exist\nLINE 1: SELECT COUNT(*) FROM fcm_devices\n                             ^"}
[2026-04-25 23:54:34.006862] FCM resolveTokensFromAlert.path: user_id
[2026-04-25 23:54:34.006876] FCM resolveTokens.in: {"user_id":"0194a8b2-bd07-7123-8123-123456789abc","division":null}
[2026-04-25 23:54:34] FCM SyncHooks.alerts.afterCreate.exception: SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation "fcm_devices" does not exist
LINE 1: SELECT fcm_token FROM fcm_devices WHERE user_id = $1
                              ^
#0 /var/www/POS/api/services/FcmDispatcher.php(65): PDOStatement->execute()
#1 /var/www/POS/api/services/FcmDispatcher.php(122): App\Services\FcmDispatcher->resolveTokens()
#2 /var/www/POS/api/services/SyncHooks.php(2245): App\Services\FcmDispatcher->resolveTokensFromAlert()
#3 [internal function]: App\Services\SyncHooks::App\Services\{closure}()
#4 /var/www/POS/api/controllers/SyncController.php(107): call_user_func_array()
#5 /var/www/POS/api/controllers/SyncController.php(1303): App\Controllers\SyncController->callHook()
#6 /var/www/POS/api/router.php(272): App\Controllers\SyncController->push()
#7 /var/www/POS/api/index.php(32): require_once('...')
#8 {main}
[2026-04-26 00:04:29] FCM SyncHooks.alerts.afterCreate.in: {"is_array":true,"alert_id":"000019dc-7105-74e3-e867-59426a1431ca","alert_type":"blood_request","division_id":"539aeeb7-75b3-423a-b65d-112aaed22f24","subdivision_id":"7f1d3e6c-ed2a-41d4-9301-8ba14ed7cd97","hospital_id":"884072e1-4125-41b5-8d60-c99254cc64f5","user_id":"0194a8b2-bd07-7123-8123-123456789abc","group_id":null}
[2026-04-26 00:04:29.137537] FCM INIT: {"pid":542643}
[2026-04-26 00:04:29.137640] FCM resolveTokensFromAlert.in: {"alert_id":"000019dc-7105-74e3-e867-59426a1431ca","user_id":"0194a8b2-bd07-7123-8123-123456789abc","division_id":"539aeeb7-75b3-423a-b65d-112aaed22f24","subdivision_id":"7f1d3e6c-ed2a-41d4-9301-8ba14ed7cd97","hospital_id":"884072e1-4125-41b5-8d60-c99254cc64f5","group_id":null}
[2026-04-26 00:04:29.139728] FCM resolveTokensFromAlert.fcm_devices_total: {"count":0}
[2026-04-26 00:04:29.139799] FCM resolveTokensFromAlert.path: user_id
[2026-04-26 00:04:29.139814] FCM resolveTokens.in: {"user_id":"0194a8b2-bd07-7123-8123-123456789abc","division":null}
[2026-04-26 00:04:29.140438] FCM resolveTokens.byUser: {"user_id":"0194a8b2-bd07-7123-8123-123456789abc","tokens":0}
[2026-04-26 00:04:29.140495] FCM resolveTokens.out: {"unique_tokens":0}
[2026-04-26 00:04:29.140653] FCM dispatch.in: {"token_count":0,"title":"test","body":"test","data_keys":["type","alert_id","priority","urgency","urgency_level","title","message"],"alert_id":"000019dc-7105-74e3-e867-59426a1431ca","type":"blood_request"}
[2026-04-26 00:04:29.140676] FCM dispatch.skip: no tokens to send to
[2026-04-26 00:04:29] FCM SyncHooks.alerts.afterCreate.done: {"alert_id":"000019dc-7105-74e3-e867-59426a1431ca","type":"blood_request","tokens_total":0,"tokens_sent":0}
[2026-04-26 04:20:40] FCM SyncHooks.alerts.afterCreate.in: {"is_array":true,"alert_id":"000019dc-804a-702d-66c0-8cfc2139185c","alert_type":"blood_request","division_id":"2d178e64-7690-4881-8298-242c69de018a","subdivision_id":"7f1d3e6c-ed2a-41d4-9301-8ba14ed7cd97","hospital_id":"884072e1-4125-41b5-8d60-c99254cc64f5","user_id":"0194a8b2-bd07-7123-8123-123456789abc","group_id":null}
[2026-04-26 04:20:40.413911] FCM INIT: {"pid":713997}
[2026-04-26 04:20:40.414001] FCM resolveTokensFromAlert.in: {"alert_id":"000019dc-804a-702d-66c0-8cfc2139185c","user_id":"0194a8b2-bd07-7123-8123-123456789abc","division_id":"2d178e64-7690-4881-8298-242c69de018a","subdivision_id":"7f1d3e6c-ed2a-41d4-9301-8ba14ed7cd97","hospital_id":"884072e1-4125-41b5-8d60-c99254cc64f5","group_id":null}
[2026-04-26 04:20:40.416728] FCM resolveTokensFromAlert.fcm_devices_total: {"count":1}
[2026-04-26 04:20:40.416802] FCM resolveTokensFromAlert.path: user_id
[2026-04-26 04:20:40.416824] FCM resolveTokens.in: {"user_id":"0194a8b2-bd07-7123-8123-123456789abc","division":null}
[2026-04-26 04:20:40.417331] FCM resolveTokens.byUser: {"user_id":"0194a8b2-bd07-7123-8123-123456789abc","tokens":0}
[2026-04-26 04:20:40.417373] FCM resolveTokens.out: {"unique_tokens":0}
[2026-04-26 04:20:40.417508] FCM dispatch.in: {"token_count":0,"title":"test","body":"test","data_keys":["type","alert_id","priority","urgency","urgency_level","title","message"],"alert_id":"000019dc-804a-702d-66c0-8cfc2139185c","type":"blood_request"}
[2026-04-26 04:20:40.417532] FCM dispatch.skip: no tokens to send to
[2026-04-26 04:20:40] FCM SyncHooks.alerts.afterCreate.done: {"alert_id":"000019dc-804a-702d-66c0-8cfc2139185c","type":"blood_request","tokens_total":0,"tokens_sent":0}
[2026-04-26 04:32:00] FCM SyncHooks.alerts.afterCreate.in: {"is_array":true,"alert_id":"000019dc-80f0-7295-423b-07bc77c66fdd","alert_type":"blood_request","division_id":"539aeeb7-75b3-423a-b65d-112aaed22f24","subdivision_id":"7f1d3e6c-ed2a-41d4-9301-8ba14ed7cd97","hospital_id":"884072e1-4125-41b5-8d60-c99254cc64f5","user_id":"0194a8b2-bd07-7123-8123-123456789abc","group_id":null}
[2026-04-26 04:32:00.898545] FCM INIT: {"pid":721464}
[2026-04-26 04:32:00.898647] FCM resolveTokensFromAlert.in: {"alert_id":"000019dc-80f0-7295-423b-07bc77c66fdd","user_id":"0194a8b2-bd07-7123-8123-123456789abc","division_id":"539aeeb7-75b3-423a-b65d-112aaed22f24","subdivision_id":"7f1d3e6c-ed2a-41d4-9301-8ba14ed7cd97","hospital_id":"884072e1-4125-41b5-8d60-c99254cc64f5","group_id":null}
[2026-04-26 04:32:00.900246] FCM resolveTokensFromAlert.fcm_devices_total: {"count":1}
[2026-04-26 04:32:00.900328] FCM resolveTokensFromAlert.path: location-intersection
[2026-04-26 04:32:00.902147] FCM resolveTokensFromAlert.donor_filter_counts: {"donors_with_division":3,"donors_with_subdivision":0,"donors_with_hospital":0}
[2026-04-26 04:32:00.902210] FCM resolveTokensFromAlert.sql: {"sql":"SELECT DISTINCT fd.fcm_token\n                    FROM fcm_devices fd\n                    JOIN donors d ON d.user_id = fd.user_id\n                    WHERE d.isdeleted = false AND d.division_id = :div_id AND d.subdivision_id = :sub_id AND d.hospital_id = :hosp_id","params":{":div_id":"539aeeb7-75b3-423a-b65d-112aaed22f24",":sub_id":"7f1d3e6c-ed2a-41d4-9301-8ba14ed7cd97",":hosp_id":"884072e1-4125-41b5-8d60-c99254cc64f5"}}
[2026-04-26 04:32:00.904289] FCM resolveTokensFromAlert.out: {"path":"location-intersection","rows_returned":0,"unique_tokens":0}
[2026-04-26 04:32:00.904553] FCM dispatch.in: {"token_count":0,"title":"test","body":"test","data_keys":["type","alert_id","priority","urgency","urgency_level","title","message"],"alert_id":"000019dc-80f0-7295-423b-07bc77c66fdd","type":"blood_request"}
[2026-04-26 04:32:00.904591] FCM dispatch.skip: no tokens to send to
[2026-04-26 04:32:00] FCM SyncHooks.alerts.afterCreate.done: {"alert_id":"000019dc-80f0-7295-423b-07bc77c66fdd","type":"blood_request","tokens_total":0,"tokens_sent":0}
[2026-04-26 07:55:10] FCM SyncHooks.alerts.afterCreate.in: {"is_array":true,"alert_id":"000019dc-8c90-7278-6170-1a477642455c","alert_type":"blood_request","division_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5","subdivision_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640","hospital_id":"f38017c2-6240-4806-bfe3-c8358edf242d","user_id":"0194a8b2-bd07-7123-8123-123456789abc","group_id":null}
[2026-04-26 07:55:10.669960] FCM INIT: {"pid":850599}
[2026-04-26 07:55:10.670063] FCM resolveTokensFromAlert.in: {"alert_id":"000019dc-8c90-7278-6170-1a477642455c","user_id":"0194a8b2-bd07-7123-8123-123456789abc","division_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5","subdivision_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640","hospital_id":"f38017c2-6240-4806-bfe3-c8358edf242d","group_id":null}
[2026-04-26 07:55:10.671823] FCM resolveTokensFromAlert.fcm_devices_total: {"count":2}
[2026-04-26 07:55:10.671892] FCM resolveTokensFromAlert.path: location-intersection
[2026-04-26 07:55:10.673638] FCM resolveTokensFromAlert.donor_filter_counts: {"donors_with_division":3,"donors_with_subdivision":3,"donors_with_hospital":3}
[2026-04-26 07:55:10.673694] FCM resolveTokensFromAlert.sql: {"sql":"SELECT DISTINCT fd.fcm_token\n                    FROM fcm_devices fd\n                    JOIN donors d ON d.user_id = fd.user_id\n                    WHERE d.isdeleted = false AND d.division_id = :div_id AND d.subdivision_id = :sub_id AND d.hospital_id = :hosp_id","params":{":div_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5",":sub_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640",":hosp_id":"f38017c2-6240-4806-bfe3-c8358edf242d"}}
[2026-04-26 07:55:10.675688] FCM resolveTokensFromAlert.out: {"path":"location-intersection","rows_returned":1,"unique_tokens":1}
[2026-04-26 07:55:10.675948] FCM dispatch.in: {"token_count":1,"title":"test division","body":"test division","data_keys":["type","alert_id","priority","urgency","urgency_level","title","message"],"alert_id":"000019dc-8c90-7278-6170-1a477642455c","type":"blood_request"}
[2026-04-26 07:55:10.676259] FCM loadServiceAccount.ok: {"path":"/var/www/POS/config/firebase-service-account.json","project_id":"redcross-blood-donation","client_email":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-04-26 07:55:10.733782] FCM getAccessToken.exchanged: {"expires_in":3599,"iss":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-04-26 07:55:10.850743] FCM sendFcmMessage.ok: {"token":"dPmEjMvBTkek\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1777190110801604%9003b13a9003b13a\"\n}\n"}
[2026-04-26 07:55:10.853117] FCM dispatch.sendResult: {"idx":0,"token":"dPmEjMvBTkek\u2026(142)","ok":true}
[2026-04-26 07:55:10.853225] FCM dispatch.out: {"sent":1,"total":1}
[2026-04-26 07:55:10] FCM SyncHooks.alerts.afterCreate.done: {"alert_id":"000019dc-8c90-7278-6170-1a477642455c","type":"blood_request","tokens_total":1,"tokens_sent":1}
[2026-04-26 08:02:29] FCM SyncHooks.alerts.afterCreate.in: {"is_array":true,"alert_id":"000019dc-8cfb-7727-54d4-2c5068c09657","alert_type":"blood_request","division_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5","subdivision_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640","hospital_id":"f38017c2-6240-4806-bfe3-c8358edf242d","user_id":"0194a8b2-bd07-7123-8123-123456789abc","group_id":null}
[2026-04-26 08:02:29.583078] FCM INIT: {"pid":855459}
[2026-04-26 08:02:29.583181] FCM resolveTokensFromAlert.in: {"alert_id":"000019dc-8cfb-7727-54d4-2c5068c09657","user_id":"0194a8b2-bd07-7123-8123-123456789abc","division_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5","subdivision_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640","hospital_id":"f38017c2-6240-4806-bfe3-c8358edf242d","group_id":null}
[2026-04-26 08:02:29.584827] FCM resolveTokensFromAlert.fcm_devices_total: {"count":2}
[2026-04-26 08:02:29.584897] FCM resolveTokensFromAlert.path: location-intersection
[2026-04-26 08:02:29.586578] FCM resolveTokensFromAlert.donor_filter_counts: {"donors_with_division":3,"donors_with_subdivision":3,"donors_with_hospital":3}
[2026-04-26 08:02:29.586629] FCM resolveTokensFromAlert.sql: {"sql":"SELECT DISTINCT fd.fcm_token\n                    FROM fcm_devices fd\n                    JOIN donors d ON d.user_id = fd.user_id\n                    WHERE d.isdeleted = false AND d.division_id = :div_id AND d.subdivision_id = :sub_id AND d.hospital_id = :hosp_id","params":{":div_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5",":sub_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640",":hosp_id":"f38017c2-6240-4806-bfe3-c8358edf242d"}}
[2026-04-26 08:02:29.587959] FCM resolveTokensFromAlert.out: {"path":"location-intersection","rows_returned":1,"unique_tokens":1}
[2026-04-26 08:02:29.588205] FCM dispatch.in: {"token_count":1,"title":"test division 2","body":"test division 2","data_keys":["type","alert_id","priority","urgency","urgency_level","title","message"],"alert_id":"000019dc-8cfb-7727-54d4-2c5068c09657","type":"blood_request"}
[2026-04-26 08:02:29.588297] FCM loadServiceAccount.ok: {"path":"/var/www/POS/config/firebase-service-account.json","project_id":"redcross-blood-donation","client_email":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-04-26 08:02:29.634396] FCM getAccessToken.exchanged: {"expires_in":3599,"iss":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-04-26 08:02:29.747273] FCM sendFcmMessage.ok: {"token":"dPmEjMvBTkek\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1777190549700369%9003b13a9003b13a\"\n}\n"}
[2026-04-26 08:02:29.748626] FCM dispatch.sendResult: {"idx":0,"token":"dPmEjMvBTkek\u2026(142)","ok":true}
[2026-04-26 08:02:29.748680] FCM dispatch.out: {"sent":1,"total":1}
[2026-04-26 08:02:29] FCM SyncHooks.alerts.afterCreate.done: {"alert_id":"000019dc-8cfb-7727-54d4-2c5068c09657","type":"blood_request","tokens_total":1,"tokens_sent":1}
[2026-04-26 08:08:41] FCM SyncHooks.alerts.afterCreate.in: {"is_array":true,"alert_id":"000019dc-8d56-7027-6c4e-a6ed4d37834d","alert_type":"blood_request","division_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5","subdivision_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640","hospital_id":"f38017c2-6240-4806-bfe3-c8358edf242d","user_id":"0194a8b2-bd07-7123-8123-123456789abc","group_id":null}
[2026-04-26 08:08:41.014970] FCM INIT: {"pid":859338}
[2026-04-26 08:08:41.015093] FCM resolveTokensFromAlert.in: {"alert_id":"000019dc-8d56-7027-6c4e-a6ed4d37834d","user_id":"0194a8b2-bd07-7123-8123-123456789abc","division_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5","subdivision_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640","hospital_id":"f38017c2-6240-4806-bfe3-c8358edf242d","group_id":null}
[2026-04-26 08:08:41.016800] FCM resolveTokensFromAlert.fcm_devices_total: {"count":4}
[2026-04-26 08:08:41.016846] FCM resolveTokensFromAlert.path: location-intersection
[2026-04-26 08:08:41.018530] FCM resolveTokensFromAlert.donor_filter_counts: {"donors_with_division":4,"donors_with_subdivision":4,"donors_with_hospital":4}
[2026-04-26 08:08:41.018564] FCM resolveTokensFromAlert.sql: {"sql":"SELECT DISTINCT fd.fcm_token\n                    FROM fcm_devices fd\n                    JOIN donors d ON d.user_id = fd.user_id\n                    WHERE d.isdeleted = false AND d.division_id = :div_id AND d.subdivision_id = :sub_id AND d.hospital_id = :hosp_id","params":{":div_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5",":sub_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640",":hosp_id":"f38017c2-6240-4806-bfe3-c8358edf242d"}}
[2026-04-26 08:08:41.019733] FCM resolveTokensFromAlert.out: {"path":"location-intersection","rows_returned":2,"unique_tokens":2}
[2026-04-26 08:08:41.020018] FCM dispatch.in: {"token_count":2,"title":"Test Alert","body":"Test Alert","data_keys":["type","alert_id","priority","urgency","urgency_level","title","message"],"alert_id":"000019dc-8d56-7027-6c4e-a6ed4d37834d","type":"blood_request"}
[2026-04-26 08:08:41.020116] FCM loadServiceAccount.ok: {"path":"/var/www/POS/config/firebase-service-account.json","project_id":"redcross-blood-donation","client_email":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-04-26 08:08:41.079343] FCM getAccessToken.exchanged: {"expires_in":3599,"iss":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-04-26 08:08:41.199774] FCM sendFcmMessage.ok: {"token":"dPmEjMvBTkek\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1777190921153062%9003b13a9003b13a\"\n}\n"}
[2026-04-26 08:08:41.201113] FCM dispatch.sendResult: {"idx":0,"token":"dPmEjMvBTkek\u2026(142)","ok":true}
[2026-04-26 08:08:41.201205] FCM getAccessToken.cached: {"expires_in":3599}
[2026-04-26 08:08:41.306345] FCM sendFcmMessage.ok: {"token":"dr2XpMmPRhWs\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1777190921264085%9003b13a9003b13a\"\n}\n"}
[2026-04-26 08:08:41.308202] FCM dispatch.sendResult: {"idx":1,"token":"dr2XpMmPRhWs\u2026(142)","ok":true}
[2026-04-26 08:08:41.308279] FCM dispatch.out: {"sent":2,"total":2}
[2026-04-26 08:08:41] FCM SyncHooks.alerts.afterCreate.done: {"alert_id":"000019dc-8d56-7027-6c4e-a6ed4d37834d","type":"blood_request","tokens_total":2,"tokens_sent":2}
[2026-04-26 09:34:13] FCM SyncHooks.alerts.afterCreate.in: {"is_array":true,"alert_id":"000019dc-923a-74e1-097a-f5010b052876","alert_type":"blood_drives","division_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5","subdivision_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640","hospital_id":"f38017c2-6240-4806-bfe3-c8358edf242d","user_id":"0194a8b2-bd07-7123-8123-123456789abc","group_id":null}
[2026-04-26 09:34:13.624704] FCM INIT: {"pid":916198}
[2026-04-26 09:34:13.624812] FCM resolveTokensFromAlert.in: {"alert_id":"000019dc-923a-74e1-097a-f5010b052876","user_id":"0194a8b2-bd07-7123-8123-123456789abc","division_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5","subdivision_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640","hospital_id":"f38017c2-6240-4806-bfe3-c8358edf242d","group_id":null}
[2026-04-26 09:34:13.626358] FCM resolveTokensFromAlert.fcm_devices_total: {"count":4}
[2026-04-26 09:34:13.626394] FCM resolveTokensFromAlert.path: location-intersection
[2026-04-26 09:34:13.628038] FCM resolveTokensFromAlert.donor_filter_counts: {"donors_with_division":4,"donors_with_subdivision":4,"donors_with_hospital":4}
[2026-04-26 09:34:13.628070] FCM resolveTokensFromAlert.sql: {"sql":"SELECT DISTINCT fd.fcm_token\n                    FROM fcm_devices fd\n                    JOIN donors d ON d.user_id = fd.user_id\n                    WHERE d.isdeleted = false AND d.division_id = :div_id AND d.subdivision_id = :sub_id AND d.hospital_id = :hosp_id","params":{":div_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5",":sub_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640",":hosp_id":"f38017c2-6240-4806-bfe3-c8358edf242d"}}
[2026-04-26 09:34:13.629241] FCM resolveTokensFromAlert.out: {"path":"location-intersection","rows_returned":2,"unique_tokens":2}
[2026-04-26 09:34:13.629433] FCM dispatch.in: {"token_count":2,"title":"Test Blood Drive Alert","body":"Test Blood Drive Alert","data_keys":["type","alert_id","priority","urgency","urgency_level","title","message"],"alert_id":"000019dc-923a-74e1-097a-f5010b052876","type":"blood_drives"}
[2026-04-26 09:34:13.629532] FCM loadServiceAccount.ok: {"path":"/var/www/POS/config/firebase-service-account.json","project_id":"redcross-blood-donation","client_email":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-04-26 09:34:13.674882] FCM getAccessToken.exchanged: {"expires_in":3599,"iss":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-04-26 09:34:13.788668] FCM sendFcmMessage.ok: {"token":"dPmEjMvBTkek\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1777196053747217%9003b13a9003b13a\"\n}\n"}
[2026-04-26 09:34:13.790075] FCM dispatch.sendResult: {"idx":0,"token":"dPmEjMvBTkek\u2026(142)","ok":true}
[2026-04-26 09:34:13.790135] FCM getAccessToken.cached: {"expires_in":3599}
[2026-04-26 09:34:13.899884] FCM sendFcmMessage.ok: {"token":"dr2XpMmPRhWs\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1777196053877938%9003b13a9003b13a\"\n}\n"}
[2026-04-26 09:34:13.901258] FCM dispatch.sendResult: {"idx":1,"token":"dr2XpMmPRhWs\u2026(142)","ok":true}
[2026-04-26 09:34:13.901318] FCM dispatch.out: {"sent":2,"total":2}
[2026-04-26 09:34:13] FCM SyncHooks.alerts.afterCreate.done: {"alert_id":"000019dc-923a-74e1-097a-f5010b052876","type":"blood_drives","tokens_total":2,"tokens_sent":2}
[2026-05-17 23:50:44] FCM SyncHooks.alerts.afterCreate.in: {"is_array":true,"alert_id":"000019e3-85ba-77b5-4381-8ebf2a653429","alert_type":"emergency_blood_request","division_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5","subdivision_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640","hospital_id":"f38017c2-6240-4806-bfe3-c8358edf242d","user_id":"0194a8b2-bd07-7123-8123-123456789abc","group_id":null}
[2026-05-17 23:50:44.314343] FCM INIT: {"pid":3290893}
[2026-05-17 23:50:44.314437] FCM resolveTokensFromAlert.in: {"alert_id":"000019e3-85ba-77b5-4381-8ebf2a653429","user_id":"0194a8b2-bd07-7123-8123-123456789abc","division_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5","subdivision_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640","hospital_id":"f38017c2-6240-4806-bfe3-c8358edf242d","group_id":null}
[2026-05-17 23:50:44.317000] FCM resolveTokensFromAlert.fcm_devices_total: {"count":9}
[2026-05-17 23:50:44.317060] FCM resolveTokensFromAlert.path: location-intersection
[2026-05-17 23:50:44.318835] FCM resolveTokensFromAlert.donor_filter_counts: {"donors_with_division":17,"donors_with_subdivision":17,"donors_with_hospital":16}
[2026-05-17 23:50:44.318919] FCM resolveTokensFromAlert.sql: {"sql":"SELECT DISTINCT fd.fcm_token\n                    FROM fcm_devices fd\n                    JOIN donors d ON d.user_id = fd.user_id\n                    WHERE d.isdeleted = false AND d.division_id = :div_id AND d.subdivision_id = :sub_id AND d.hospital_id = :hosp_id","params":{":div_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5",":sub_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640",":hosp_id":"f38017c2-6240-4806-bfe3-c8358edf242d"}}
[2026-05-17 23:50:44.320291] FCM resolveTokensFromAlert.out: {"path":"location-intersection","rows_returned":5,"unique_tokens":5}
[2026-05-17 23:50:44.320495] FCM dispatch.in: {"token_count":5,"title":"Blood Donation","body":"Urgent Blood Request for Blood type O in CWM Hospital","data_keys":["type","alert_id","priority","urgency","urgency_level","title","message"],"alert_id":"000019e3-85ba-77b5-4381-8ebf2a653429","type":"emergency_blood_request"}
[2026-05-17 23:50:44.320857] FCM loadServiceAccount.ok: {"path":"/var/www/POS/config/firebase-service-account.json","project_id":"redcross-blood-donation","client_email":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-05-17 23:50:44.390406] FCM getAccessToken.exchanged: {"expires_in":3599,"iss":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-05-17 23:50:44.518002] FCM sendFcmMessage.ok: {"token":"cBONMpFbQI6h\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1779061844474708%f431b717f431b717\"\n}\n"}
[2026-05-17 23:50:44.520472] FCM dispatch.sendResult: {"idx":0,"token":"cBONMpFbQI6h\u2026(142)","ok":true}
[2026-05-17 23:50:44.520590] FCM getAccessToken.cached: {"expires_in":3599}
[2026-05-17 23:50:44.654715] FCM sendFcmMessage.ok: {"token":"dM5Em1HyR3W9\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1779061844624169%9003b13a9003b13a\"\n}\n"}
[2026-05-17 23:50:44.657398] FCM dispatch.sendResult: {"idx":1,"token":"dM5Em1HyR3W9\u2026(142)","ok":true}
[2026-05-17 23:50:44.657525] FCM getAccessToken.cached: {"expires_in":3599}
[2026-05-17 23:50:44.784648] FCM sendFcmMessage.ok: {"token":"dPmEjMvBTkek\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1779061844741592%9003b13a9003b13a\"\n}\n"}
[2026-05-17 23:50:44.787096] FCM dispatch.sendResult: {"idx":2,"token":"dPmEjMvBTkek\u2026(142)","ok":true}
[2026-05-17 23:50:44.787198] FCM getAccessToken.cached: {"expires_in":3599}
[2026-05-17 23:50:44.892226] FCM sendFcmMessage.ok: {"token":"dr2XpMmPRhWs\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1779061844857120%9003b13a9003b13a\"\n}\n"}
[2026-05-17 23:50:44.894701] FCM dispatch.sendResult: {"idx":3,"token":"dr2XpMmPRhWs\u2026(142)","ok":true}
[2026-05-17 23:50:44.894836] FCM getAccessToken.cached: {"expires_in":3599}
[2026-05-17 23:50:45.010723] FCM sendFcmMessage.ok: {"token":"fTs9R14zSIO7\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1779061844983493%f431b717f431b717\"\n}\n"}
[2026-05-17 23:50:45.013354] FCM dispatch.sendResult: {"idx":4,"token":"fTs9R14zSIO7\u2026(142)","ok":true}
[2026-05-17 23:50:45.014035] FCM dispatch.out: {"sent":5,"total":5}
[2026-05-17 23:50:45] FCM SyncHooks.alerts.afterCreate.done: {"alert_id":"000019e3-85ba-77b5-4381-8ebf2a653429","type":"emergency_blood_request","tokens_total":5,"tokens_sent":5}
[2026-05-22 02:44:08] FCM SyncHooks.alerts.afterCreate.in: {"is_array":true,"alert_id":"000019e4-d919-75c0-aa7a-c77209e38340","alert_type":"emergency_blood_request","division_id":"539aeeb7-75b3-423a-b65d-112aaed22f24","subdivision_id":"fbe81615-4c0d-4351-bcde-6a9c4911da97","hospital_id":"f38017c2-6240-4806-bfe3-c8358edf242d","user_id":"0194a8b2-bd07-7123-8123-123456789abc","group_id":null}
[2026-05-22 02:44:08.146173] FCM INIT: {"pid":1016931}
[2026-05-22 02:44:08.146331] FCM resolveTokensFromAlert.in: {"alert_id":"000019e4-d919-75c0-aa7a-c77209e38340","user_id":"0194a8b2-bd07-7123-8123-123456789abc","division_id":"539aeeb7-75b3-423a-b65d-112aaed22f24","subdivision_id":"fbe81615-4c0d-4351-bcde-6a9c4911da97","hospital_id":"f38017c2-6240-4806-bfe3-c8358edf242d","group_id":null}
[2026-05-22 02:44:08.150129] FCM resolveTokensFromAlert.fcm_devices_total: {"count":9}
[2026-05-22 02:44:08.150283] FCM resolveTokensFromAlert.path: location-intersection
[2026-05-22 02:44:08.153375] FCM resolveTokensFromAlert.donor_filter_counts: {"donors_with_division":4,"donors_with_subdivision":4,"donors_with_hospital":16}
[2026-05-22 02:44:08.153548] FCM resolveTokensFromAlert.sql: {"sql":"SELECT DISTINCT fd.fcm_token\n                    FROM fcm_devices fd\n                    JOIN donors d ON d.user_id = fd.user_id\n                    WHERE d.isdeleted = false AND d.division_id = :div_id AND d.subdivision_id = :sub_id AND d.hospital_id = :hosp_id","params":{":div_id":"539aeeb7-75b3-423a-b65d-112aaed22f24",":sub_id":"fbe81615-4c0d-4351-bcde-6a9c4911da97",":hosp_id":"f38017c2-6240-4806-bfe3-c8358edf242d"}}
[2026-05-22 02:44:08.155562] FCM resolveTokensFromAlert.out: {"path":"location-intersection","rows_returned":0,"unique_tokens":0}
[2026-05-22 02:44:08.156057] FCM dispatch.in: {"token_count":0,"title":"RC Blood test Boardroom","body":"Test","data_keys":["type","alert_id","priority","urgency","urgency_level","title","message"],"alert_id":"000019e4-d919-75c0-aa7a-c77209e38340","type":"emergency_blood_request"}
[2026-05-22 02:44:08.156156] FCM dispatch.skip: no tokens to send to
[2026-05-22 02:44:08] FCM SyncHooks.alerts.afterCreate.done: {"alert_id":"000019e4-d919-75c0-aa7a-c77209e38340","type":"emergency_blood_request","tokens_total":0,"tokens_sent":0}
[2026-05-22 02:45:14] FCM SyncHooks.alerts.afterCreate.in: {"is_array":true,"alert_id":"000019e4-d929-7cc3-b5ed-226fa32f0f22","alert_type":"emergency_blood_request","division_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5","subdivision_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640","hospital_id":"f38017c2-6240-4806-bfe3-c8358edf242d","user_id":"0194a8b2-bd07-7123-8123-123456789abc","group_id":null}
[2026-05-22 02:45:14.822544] FCM INIT: {"pid":1014350}
[2026-05-22 02:45:14.822663] FCM resolveTokensFromAlert.in: {"alert_id":"000019e4-d929-7cc3-b5ed-226fa32f0f22","user_id":"0194a8b2-bd07-7123-8123-123456789abc","division_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5","subdivision_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640","hospital_id":"f38017c2-6240-4806-bfe3-c8358edf242d","group_id":null}
[2026-05-22 02:45:14.824698] FCM resolveTokensFromAlert.fcm_devices_total: {"count":9}
[2026-05-22 02:45:14.824869] FCM resolveTokensFromAlert.path: location-intersection
[2026-05-22 02:45:14.827316] FCM resolveTokensFromAlert.donor_filter_counts: {"donors_with_division":17,"donors_with_subdivision":17,"donors_with_hospital":16}
[2026-05-22 02:45:14.827436] FCM resolveTokensFromAlert.sql: {"sql":"SELECT DISTINCT fd.fcm_token\n                    FROM fcm_devices fd\n                    JOIN donors d ON d.user_id = fd.user_id\n                    WHERE d.isdeleted = false AND d.division_id = :div_id AND d.subdivision_id = :sub_id AND d.hospital_id = :hosp_id","params":{":div_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5",":sub_id":"5b478ee2-85b6-4fa8-9986-2048f8ffb640",":hosp_id":"f38017c2-6240-4806-bfe3-c8358edf242d"}}
[2026-05-22 02:45:14.829213] FCM resolveTokensFromAlert.out: {"path":"location-intersection","rows_returned":5,"unique_tokens":5}
[2026-05-22 02:45:14.829632] FCM dispatch.in: {"token_count":5,"title":"test","body":"test","data_keys":["type","alert_id","priority","urgency","urgency_level","title","message"],"alert_id":"000019e4-d929-7cc3-b5ed-226fa32f0f22","type":"emergency_blood_request"}
[2026-05-22 02:45:14.830159] FCM loadServiceAccount.ok: {"path":"/var/www/POS/config/firebase-service-account.json","project_id":"redcross-blood-donation","client_email":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-05-22 02:45:14.903056] FCM getAccessToken.exchanged: {"expires_in":3599,"iss":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-05-22 02:45:15.040434] FCM sendFcmMessage.ok: {"token":"cBONMpFbQI6h\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1779417914991645%f431b717f431b717\"\n}\n"}
[2026-05-22 02:45:15.043009] FCM dispatch.sendResult: {"idx":0,"token":"cBONMpFbQI6h\u2026(142)","ok":true}
[2026-05-22 02:45:15.043147] FCM getAccessToken.cached: {"expires_in":3598}
[2026-05-22 02:45:15.186267] FCM sendFcmMessage.ok: {"token":"dM5Em1HyR3W9\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1779417915153870%9003b13a9003b13a\"\n}\n"}
[2026-05-22 02:45:15.191013] FCM dispatch.sendResult: {"idx":1,"token":"dM5Em1HyR3W9\u2026(142)","ok":true}
[2026-05-22 02:45:15.191141] FCM getAccessToken.cached: {"expires_in":3598}
[2026-05-22 02:45:15.338056] FCM sendFcmMessage.ok: {"token":"dPmEjMvBTkek\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1779417915304333%9003b13a9003b13a\"\n}\n"}
[2026-05-22 02:45:15.340354] FCM dispatch.sendResult: {"idx":2,"token":"dPmEjMvBTkek\u2026(142)","ok":true}
[2026-05-22 02:45:15.340484] FCM getAccessToken.cached: {"expires_in":3598}
[2026-05-22 02:45:15.456633] FCM sendFcmMessage.ok: {"token":"dr2XpMmPRhWs\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1779417915417228%9003b13a9003b13a\"\n}\n"}
[2026-05-22 02:45:15.458480] FCM dispatch.sendResult: {"idx":3,"token":"dr2XpMmPRhWs\u2026(142)","ok":true}
[2026-05-22 02:45:15.458592] FCM getAccessToken.cached: {"expires_in":3598}
[2026-05-22 02:45:15.574183] FCM sendFcmMessage.ok: {"token":"fTs9R14zSIO7\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1779417915540117%f431b717f431b717\"\n}\n"}
[2026-05-22 02:45:15.582646] FCM dispatch.sendResult: {"idx":4,"token":"fTs9R14zSIO7\u2026(142)","ok":true}
[2026-05-22 02:45:15.582803] FCM dispatch.out: {"sent":5,"total":5}
[2026-05-22 02:45:15] FCM SyncHooks.alerts.afterCreate.done: {"alert_id":"000019e4-d929-7cc3-b5ed-226fa32f0f22","type":"emergency_blood_request","tokens_total":5,"tokens_sent":5}
[2026-06-04 08:47:28] FCM SyncHooks.alerts.afterCreate.in: {"is_array":true,"alert_id":"000019e9-1d0e-7815-70d1-cb96def99758","alert_type":"blood_request","division_id":null,"subdivision_id":null,"hospital_id":null,"user_id":"019e91c6-a2de-7742-b9d1-b767977400d4","group_id":null}
[2026-06-04 08:47:28.024764] FCM INIT: {"pid":2679834}
[2026-06-04 08:47:28.024874] FCM resolveTokensFromAlert.in: {"alert_id":"000019e9-1d0e-7815-70d1-cb96def99758","user_id":"019e91c6-a2de-7742-b9d1-b767977400d4","division_id":null,"subdivision_id":null,"hospital_id":null,"group_id":null}
[2026-06-04 08:47:28.028211] FCM resolveTokensFromAlert.fcm_devices_total: {"count":9}
[2026-06-04 08:47:28.028280] FCM resolveTokensFromAlert.path: user_id
[2026-06-04 08:47:28.028294] FCM resolveTokens.in: {"user_id":"019e91c6-a2de-7742-b9d1-b767977400d4","division":null}
[2026-06-04 08:47:28.028882] FCM resolveTokens.byUser: {"user_id":"019e91c6-a2de-7742-b9d1-b767977400d4","tokens":0}
[2026-06-04 08:47:28.028921] FCM resolveTokens.out: {"unique_tokens":0}
[2026-06-04 08:47:28.029046] FCM dispatch.in: {"token_count":0,"title":"Test Alert","body":"bg ngnhgb hnb hfnfh nhn","data_keys":["type","alert_id","priority","urgency","urgency_level","title","message"],"alert_id":"000019e9-1d0e-7815-70d1-cb96def99758","type":"blood_request"}
[2026-06-04 08:47:28.029067] FCM dispatch.skip: no tokens to send to
[2026-06-04 08:47:28] FCM SyncHooks.alerts.afterCreate.done: {"alert_id":"000019e9-1d0e-7815-70d1-cb96def99758","type":"blood_request","tokens_total":0,"tokens_sent":0}
[2026-06-06 10:01:55] FCM SyncHooks.alerts.afterCreate.in: {"is_array":true,"alert_id":"000019e9-c61c-7c6b-0a90-a698a3b1416c","alert_type":"blood_drives","division_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5","subdivision_id":null,"hospital_id":null,"user_id":"0194a8b2-bd07-7123-8123-123456789abc","group_id":null}
[2026-06-06 10:01:55.740026] FCM INIT: {"pid":3437716}
[2026-06-06 10:01:55.740123] FCM resolveTokensFromAlert.in: {"alert_id":"000019e9-c61c-7c6b-0a90-a698a3b1416c","user_id":"0194a8b2-bd07-7123-8123-123456789abc","division_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5","subdivision_id":null,"hospital_id":null,"group_id":null}
[2026-06-06 10:01:55.742868] FCM resolveTokensFromAlert.fcm_devices_total: {"count":13}
[2026-06-06 10:01:55.742948] FCM resolveTokensFromAlert.path: location-intersection
[2026-06-06 10:01:55.743855] FCM resolveTokensFromAlert.donor_filter_counts: {"donors_with_division":20}
[2026-06-06 10:01:55.743897] FCM resolveTokensFromAlert.sql: {"sql":"SELECT DISTINCT fd.fcm_token\n                    FROM fcm_devices fd\n                    JOIN donors d ON d.user_id = fd.user_id\n                    WHERE d.isdeleted = false AND d.division_id = :div_id","params":{":div_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5"}}
[2026-06-06 10:01:55.745469] FCM resolveTokensFromAlert.out: {"path":"location-intersection","rows_returned":6,"unique_tokens":6}
[2026-06-06 10:01:55.745663] FCM dispatch.in: {"token_count":6,"title":"Test Alert","body":"This is a test alert","data_keys":["type","alert_id","priority","urgency","urgency_level","title","message"],"alert_id":"000019e9-c61c-7c6b-0a90-a698a3b1416c","type":"blood_drives"}
[2026-06-06 10:01:55.745917] FCM loadServiceAccount.ok: {"path":"/var/www/POS/config/firebase-service-account.json","project_id":"redcross-blood-donation","client_email":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-06-06 10:01:55.813116] FCM getAccessToken.exchanged: {"expires_in":3599,"iss":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-06-06 10:01:55.938869] FCM sendFcmMessage.fail: {"token":"dr2XpMmPRhWs\u2026(142)","http_code":404,"curl_err":null,"response":"{\n  \"error\": {\n    \"code\": 404,\n    \"message\": \"Requested entity was not found.\",\n    \"status\": \"NOT_FOUND\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.firebase.fcm.v1.FcmError\",\n        \"errorCode\": \"UNREGISTERED\"\n      }\n    ]\n  }\n}\n"}
[2026-06-06 10:01:55.940366] FCM dispatch.sendResult: {"idx":0,"token":"dr2XpMmPRhWs\u2026(142)","ok":false}
[2026-06-06 10:01:55.940453] FCM getAccessToken.cached: {"expires_in":3599}
[2026-06-06 10:01:56.089242] FCM sendFcmMessage.ok: {"token":"cBONMpFbQI6h\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1780740116053079%f431b717f9fd7ecd\"\n}\n"}
[2026-06-06 10:01:56.090700] FCM dispatch.sendResult: {"idx":1,"token":"cBONMpFbQI6h\u2026(142)","ok":true}
[2026-06-06 10:01:56.090936] FCM getAccessToken.cached: {"expires_in":3598}
[2026-06-06 10:01:56.226373] FCM sendFcmMessage.ok: {"token":"dM5Em1HyR3W9\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1780740116197619%9003b13af9fd7ecd\"\n}\n"}
[2026-06-06 10:01:56.228580] FCM dispatch.sendResult: {"idx":2,"token":"dM5Em1HyR3W9\u2026(142)","ok":true}
[2026-06-06 10:01:56.228679] FCM getAccessToken.cached: {"expires_in":3598}
[2026-06-06 10:01:56.341303] FCM sendFcmMessage.ok: {"token":"ebSPBC8BTra0\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1780740116304977%f431b717f9fd7ecd\"\n}\n"}
[2026-06-06 10:01:56.342858] FCM dispatch.sendResult: {"idx":3,"token":"ebSPBC8BTra0\u2026(142)","ok":true}
[2026-06-06 10:01:56.342925] FCM getAccessToken.cached: {"expires_in":3598}
[2026-06-06 10:01:56.469136] FCM sendFcmMessage.ok: {"token":"fTs9R14zSIO7\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1780740116424018%f431b717f9fd7ecd\"\n}\n"}
[2026-06-06 10:01:56.470725] FCM dispatch.sendResult: {"idx":4,"token":"fTs9R14zSIO7\u2026(142)","ok":true}
[2026-06-06 10:01:56.470820] FCM getAccessToken.cached: {"expires_in":3598}
[2026-06-06 10:01:56.597111] FCM sendFcmMessage.ok: {"token":"dPmEjMvBTkek\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1780740116574489%9003b13af9fd7ecd\"\n}\n"}
[2026-06-06 10:01:56.598701] FCM dispatch.sendResult: {"idx":5,"token":"dPmEjMvBTkek\u2026(142)","ok":true}
[2026-06-06 10:01:56.598761] FCM dispatch.out: {"sent":5,"total":6}
[2026-06-06 10:01:56] FCM SyncHooks.alerts.afterCreate.done: {"alert_id":"000019e9-c61c-7c6b-0a90-a698a3b1416c","type":"blood_drives","tokens_total":6,"tokens_sent":5}
[2026-06-06 10:02:38] FCM SyncHooks.alerts.afterCreate.in: {"is_array":true,"alert_id":"000019e9-c627-70c4-8693-862ba6722129","alert_type":"blood_request","division_id":"539aeeb7-75b3-423a-b65d-112aaed22f24","subdivision_id":null,"hospital_id":null,"user_id":"0194a8b2-bd07-7123-8123-123456789abc","group_id":null}
[2026-06-06 10:02:38.074140] FCM INIT: {"pid":3438477}
[2026-06-06 10:02:38.074271] FCM resolveTokensFromAlert.in: {"alert_id":"000019e9-c627-70c4-8693-862ba6722129","user_id":"0194a8b2-bd07-7123-8123-123456789abc","division_id":"539aeeb7-75b3-423a-b65d-112aaed22f24","subdivision_id":null,"hospital_id":null,"group_id":null}
[2026-06-06 10:02:38.076001] FCM resolveTokensFromAlert.fcm_devices_total: {"count":13}
[2026-06-06 10:02:38.076088] FCM resolveTokensFromAlert.path: location-intersection
[2026-06-06 10:02:38.077118] FCM resolveTokensFromAlert.donor_filter_counts: {"donors_with_division":8}
[2026-06-06 10:02:38.077186] FCM resolveTokensFromAlert.sql: {"sql":"SELECT DISTINCT fd.fcm_token\n                    FROM fcm_devices fd\n                    JOIN donors d ON d.user_id = fd.user_id\n                    WHERE d.isdeleted = false AND d.division_id = :div_id","params":{":div_id":"539aeeb7-75b3-423a-b65d-112aaed22f24"}}
[2026-06-06 10:02:38.078450] FCM resolveTokensFromAlert.out: {"path":"location-intersection","rows_returned":5,"unique_tokens":5}
[2026-06-06 10:02:38.078712] FCM dispatch.in: {"token_count":5,"title":"Test","body":"TEST","data_keys":["type","alert_id","priority","urgency","urgency_level","title","message"],"alert_id":"000019e9-c627-70c4-8693-862ba6722129","type":"blood_request"}
[2026-06-06 10:02:38.078838] FCM loadServiceAccount.ok: {"path":"/var/www/POS/config/firebase-service-account.json","project_id":"redcross-blood-donation","client_email":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-06-06 10:02:38.143163] FCM getAccessToken.exchanged: {"expires_in":3599,"iss":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-06-06 10:02:38.259596] FCM sendFcmMessage.ok: {"token":"ci-YgaHrTuqx\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1780740158227855%f431b717f9fd7ecd\"\n}\n"}
[2026-06-06 10:02:38.261187] FCM dispatch.sendResult: {"idx":0,"token":"ci-YgaHrTuqx\u2026(142)","ok":true}
[2026-06-06 10:02:38.261269] FCM getAccessToken.cached: {"expires_in":3599}
[2026-06-06 10:02:38.379332] FCM sendFcmMessage.ok: {"token":"dPmEjMvBTkek\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1780740158339044%9003b13af9fd7ecd\"\n}\n"}
[2026-06-06 10:02:38.380949] FCM dispatch.sendResult: {"idx":1,"token":"dPmEjMvBTkek\u2026(142)","ok":true}
[2026-06-06 10:02:38.381016] FCM getAccessToken.cached: {"expires_in":3599}
[2026-06-06 10:02:38.489656] FCM sendFcmMessage.fail: {"token":"dr2XpMmPRhWs\u2026(142)","http_code":404,"curl_err":null,"response":"{\n  \"error\": {\n    \"code\": 404,\n    \"message\": \"Requested entity was not found.\",\n    \"status\": \"NOT_FOUND\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.firebase.fcm.v1.FcmError\",\n        \"errorCode\": \"UNREGISTERED\"\n      }\n    ]\n  }\n}\n"}
[2026-06-06 10:02:38.491279] FCM dispatch.sendResult: {"idx":2,"token":"dr2XpMmPRhWs\u2026(142)","ok":false}
[2026-06-06 10:02:38.491358] FCM getAccessToken.cached: {"expires_in":3599}
[2026-06-06 10:02:38.626562] FCM sendFcmMessage.ok: {"token":"e-uXk1lrS2Gb\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1780740158602189%f431b717f9fd7ecd\"\n}\n"}
[2026-06-06 10:02:38.628046] FCM dispatch.sendResult: {"idx":3,"token":"e-uXk1lrS2Gb\u2026(142)","ok":true}
[2026-06-06 10:02:38.628113] FCM getAccessToken.cached: {"expires_in":3599}
[2026-06-06 10:02:38.731005] FCM sendFcmMessage.ok: {"token":"ebSPBC8BTra0\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1780740158701741%f431b717f9fd7ecd\"\n}\n"}
[2026-06-06 10:02:38.732460] FCM dispatch.sendResult: {"idx":4,"token":"ebSPBC8BTra0\u2026(142)","ok":true}
[2026-06-06 10:02:38.732558] FCM dispatch.out: {"sent":4,"total":5}
[2026-06-06 10:02:38] FCM SyncHooks.alerts.afterCreate.done: {"alert_id":"000019e9-c627-70c4-8693-862ba6722129","type":"blood_request","tokens_total":5,"tokens_sent":4}
[2026-06-06 10:03:52] FCM SyncHooks.alerts.afterCreate.in: {"is_array":true,"alert_id":"000019e9-c62f-7913-a764-586fcd71f144","alert_type":"blood_request","division_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5","subdivision_id":null,"hospital_id":null,"user_id":"0194a8b2-bd07-7123-8123-123456789abc","group_id":null}
[2026-06-06 10:03:52.316019] FCM INIT: {"pid":3438423}
[2026-06-06 10:03:52.316107] FCM resolveTokensFromAlert.in: {"alert_id":"000019e9-c62f-7913-a764-586fcd71f144","user_id":"0194a8b2-bd07-7123-8123-123456789abc","division_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5","subdivision_id":null,"hospital_id":null,"group_id":null}
[2026-06-06 10:03:52.317606] FCM resolveTokensFromAlert.fcm_devices_total: {"count":13}
[2026-06-06 10:03:52.317642] FCM resolveTokensFromAlert.path: location-intersection
[2026-06-06 10:03:52.318494] FCM resolveTokensFromAlert.donor_filter_counts: {"donors_with_division":20}
[2026-06-06 10:03:52.318520] FCM resolveTokensFromAlert.sql: {"sql":"SELECT DISTINCT fd.fcm_token\n                    FROM fcm_devices fd\n                    JOIN donors d ON d.user_id = fd.user_id\n                    WHERE d.isdeleted = false AND d.division_id = :div_id","params":{":div_id":"f67a1caa-8a36-4740-90f2-2bffbd1ec4b5"}}
[2026-06-06 10:03:52.319605] FCM resolveTokensFromAlert.out: {"path":"location-intersection","rows_returned":6,"unique_tokens":6}
[2026-06-06 10:03:52.319794] FCM dispatch.in: {"token_count":6,"title":"Test 2 ","body":"Test 2","data_keys":["type","alert_id","priority","urgency","urgency_level","title","message"],"alert_id":"000019e9-c62f-7913-a764-586fcd71f144","type":"blood_request"}
[2026-06-06 10:03:52.319867] FCM loadServiceAccount.ok: {"path":"/var/www/POS/config/firebase-service-account.json","project_id":"redcross-blood-donation","client_email":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-06-06 10:03:52.361501] FCM getAccessToken.exchanged: {"expires_in":3599,"iss":"firebase-adminsdk-fbsvc@redcross-blood-donation.iam.gserviceaccount.com"}
[2026-06-06 10:03:52.470779] FCM sendFcmMessage.fail: {"token":"dr2XpMmPRhWs\u2026(142)","http_code":404,"curl_err":null,"response":"{\n  \"error\": {\n    \"code\": 404,\n    \"message\": \"Requested entity was not found.\",\n    \"status\": \"NOT_FOUND\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.firebase.fcm.v1.FcmError\",\n        \"errorCode\": \"UNREGISTERED\"\n      }\n    ]\n  }\n}\n"}
[2026-06-06 10:03:52.472099] FCM dispatch.sendResult: {"idx":0,"token":"dr2XpMmPRhWs\u2026(142)","ok":false}
[2026-06-06 10:03:52.472190] FCM getAccessToken.cached: {"expires_in":3599}
[2026-06-06 10:03:52.592621] FCM sendFcmMessage.ok: {"token":"cBONMpFbQI6h\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1780740232570728%f431b717f9fd7ecd\"\n}\n"}
[2026-06-06 10:03:52.594022] FCM dispatch.sendResult: {"idx":1,"token":"cBONMpFbQI6h\u2026(142)","ok":true}
[2026-06-06 10:03:52.594100] FCM getAccessToken.cached: {"expires_in":3599}
[2026-06-06 10:03:52.708545] FCM sendFcmMessage.ok: {"token":"dM5Em1HyR3W9\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1780740232666722%9003b13af9fd7ecd\"\n}\n"}
[2026-06-06 10:03:52.709975] FCM dispatch.sendResult: {"idx":2,"token":"dM5Em1HyR3W9\u2026(142)","ok":true}
[2026-06-06 10:03:52.710040] FCM getAccessToken.cached: {"expires_in":3599}
[2026-06-06 10:03:52.830357] FCM sendFcmMessage.ok: {"token":"ebSPBC8BTra0\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1780740232785181%f431b717f9fd7ecd\"\n}\n"}
[2026-06-06 10:03:52.831929] FCM dispatch.sendResult: {"idx":3,"token":"ebSPBC8BTra0\u2026(142)","ok":true}
[2026-06-06 10:03:52.832017] FCM getAccessToken.cached: {"expires_in":3599}
[2026-06-06 10:03:52.945366] FCM sendFcmMessage.ok: {"token":"fTs9R14zSIO7\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1780740232895521%f431b717f9fd7ecd\"\n}\n"}
[2026-06-06 10:03:52.946837] FCM dispatch.sendResult: {"idx":4,"token":"fTs9R14zSIO7\u2026(142)","ok":true}
[2026-06-06 10:03:52.946920] FCM getAccessToken.cached: {"expires_in":3599}
[2026-06-06 10:03:53.026518] FCM sendFcmMessage.ok: {"token":"dPmEjMvBTkek\u2026(142)","response":"{\n  \"name\": \"projects/redcross-blood-donation/messages/0:1780740232994024%9003b13af9fd7ecd\"\n}\n"}
[2026-06-06 10:03:53.028025] FCM dispatch.sendResult: {"idx":5,"token":"dPmEjMvBTkek\u2026(142)","ok":true}
[2026-06-06 10:03:53.028085] FCM dispatch.out: {"sent":5,"total":6}
[2026-06-06 10:03:53] FCM SyncHooks.alerts.afterCreate.done: {"alert_id":"000019e9-c62f-7913-a764-586fcd71f144","type":"blood_request","tokens_total":6,"tokens_sent":5}
