=== Eye Viewer Log Rotated at 2026-01-21 10:56:04 +0000 === alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-21 11:04:49"; "file_name" = ""; message = Okii; "message_id" = 18384; "message_type" = 0; "prev_session_message_id" = 18383; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18384, AnyHashable("operation_type"): 3] - stun:stun.l.google.com:19302 - turn:crivello.dyndns.org:3478?transport=udp - turn:crivello.dyndns.org:3478?transport=tcp - turns:crivello.dyndns.org:5349?transport=tcp datesent = "2026-01-21 11:20:40"; "file_name" = ""; message = "\Ud83d\Udc8b"; "message_id" = 18385; "message_type" = 0; "prev_session_message_id" = 18384; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18385] datesent = "2026-01-21 11:20:40"; "file_name" = ""; message = "\Ud83d\Udc8b"; "message_id" = 18385; "message_type" = 0; "prev_session_message_id" = 18384; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18385] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-21 11:20:40"; "file_name" = ""; message = "\Ud83d\Udc8b"; "message_id" = 18385; "message_type" = 0; "prev_session_message_id" = 18384; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("operation_type"): 3] - stun:stun.l.google.com:19302 - turn:crivello.dyndns.org:3478?transport=udp - turn:crivello.dyndns.org:3478?transport=tcp - turns:crivello.dyndns.org:5349?transport=tcp "LocalWebSocketTask <622300CF-5BD1-445E-9935-9BE955B4F47C>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <622300CF-5BD1-445E-9935-9BE955B4F47C>.<1>} "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18386, AnyHashable("operation_type"): 3] "LocalWebSocketTask <37837BEB-46F9-4935-AF5A-43BDB98CA0DD>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <37837BEB-46F9-4935-AF5A-43BDB98CA0DD>.<1>} datesent = "2026-01-21 12:16:28"; "file_name" = ""; message = "I was in a call with sasa baby"; "message_id" = 18388; "message_type" = 0; "prev_session_message_id" = 18387; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-21 12:16:31"; "file_name" = ""; message = "Sorry\Ud83e\Udd72"; "message_id" = 18389; "message_type" = 0; "prev_session_message_id" = 18388; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("operation_type"): 3] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-21 12:16:31"; "file_name" = ""; message = "Sorry\Ud83e\Udd72"; "message_id" = 18389; "message_type" = 0; "prev_session_message_id" = 18388; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18389] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18390] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18391] "LocalWebSocketTask <5B5E188C-4F2F-44A5-A562-5B4D26D46C91>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <5B5E188C-4F2F-44A5-A562-5B4D26D46C91>.<1>} datesent = "2026-01-21 12:24:40"; "file_name" = ""; message = "Im sure it will baby\U2665\Ufe0f"; "message_id" = 18393; "message_type" = 0; "prev_session_message_id" = 18392; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18393, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18393, AnyHashable("message_data"): { datesent = "2026-01-21 12:24:40"; "file_name" = ""; message = "Im sure it will baby\U2665\Ufe0f"; "message_id" = 18393; "message_type" = 0; "prev_session_message_id" = 18392; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] "LocalWebSocketTask .<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask .<1>} alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-21 12:35:13"; "file_name" = ""; message = "Babyyy!!!!!!"; "message_id" = 18396; "message_type" = 0; "prev_session_message_id" = 18395; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18396] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18396] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-21 12:35:22"; "file_name" = ""; message = "\Ud83d\Ude21"; "message_id" = 18397; "message_type" = 0; "prev_session_message_id" = 18396; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18397, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] "LocalWebSocketTask <6DEF45AE-ECF0-48E2-ABCE-C8D608D0AC30>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <6DEF45AE-ECF0-48E2-ABCE-C8D608D0AC30>.<1>} "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18397, AnyHashable("operation_type"): 3] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-21 12:35:22"; "file_name" = ""; message = "\Ud83d\Ude21"; "message_id" = 18397; "message_type" = 0; "prev_session_message_id" = 18396; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18397] datesent = "2026-01-21 12:56:37"; "file_name" = ""; message = "I do, I always do !"; "message_id" = 18400; "message_type" = 0; "prev_session_message_id" = 18399; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 18400, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "LocalDataTask <7074F352-0D31-4D01-A5AE-7D58AE30AFF6>.<150>" ), NSLocalizedDescription=The network connection was lost., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, _kCFStreamErrorDomainKey=4} - stun:stun.l.google.com:19302 - turn:crivello.dyndns.org:3478?transport=udp - turn:crivello.dyndns.org:3478?transport=tcp - turns:crivello.dyndns.org:5349?transport=tcp "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18404, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3] datesent = "2026-01-21 16:09:06"; "file_name" = ""; message = "Ahhh I wish I can go\Ud83e\Udd72"; "message_id" = 18416; "message_type" = 0; "prev_session_message_id" = 18415; "replied_message" = "Maybe Pilates ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18408; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 7; "content-available" = 1; sound = default; }] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 18415] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18414] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18412] "content-available" = 1; }, AnyHashable("message_id"): 18410] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18419] datesent = "2026-01-21 16:37:39"; "file_name" = ""; message = "I haven\U2019t eaten anything yet today"; "message_id" = 18420; "message_type" = 0; "prev_session_message_id" = 18419; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18420, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-21 16:37:39"; "file_name" = ""; message = "I haven\U2019t eaten anything yet today"; "message_id" = 18420; "message_type" = 0; "prev_session_message_id" = 18419; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18420, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-21 16:37:39"; "file_name" = ""; message = "I haven\U2019t eaten anything yet today"; "message_id" = 18420; "message_type" = 0; "prev_session_message_id" = 18419; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18420, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 18421, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-21 16:38:16"; "file_name" = ""; message = "Yes I was baby"; "message_id" = 18423; "message_type" = 0; "prev_session_message_id" = 18422; "replied_message" = "Were you alone at home today ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18406; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-21 16:38:16"; "file_name" = ""; message = "Yes I was baby"; "message_id" = 18423; "message_type" = 0; "prev_session_message_id" = 18422; "replied_message" = "Were you alone at home today ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18406; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18423, AnyHashable("message_data"): { datesent = "2026-01-21 16:38:16"; "file_name" = ""; message = "Yes I was baby"; "message_id" = 18423; "message_type" = 0; "prev_session_message_id" = 18422; "replied_message" = "Were you alone at home today ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18406; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18423, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18424] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-21 16:38:43"; "file_name" = ""; message = "Not sure about that, gained some weight during weekend \Ud83e\Udd23\Ud83e\Udd23"; "message_id" = 18425; "message_type" = 0; "prev_session_message_id" = 18424; "replied_message" = "More needed for me than for you !"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18422; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18425] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-21 16:38:43"; "file_name" = ""; message = "Not sure about that, gained some weight during weekend \Ud83e\Udd23\Ud83e\Udd23"; "message_id" = 18425; "message_type" = 0; "prev_session_message_id" = 18424; "replied_message" = "More needed for me than for you !"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18422; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18425] datesent = "2026-01-21 16:38:43"; "file_name" = ""; message = "Not sure about that, gained some weight during weekend \Ud83e\Udd23\Ud83e\Udd23"; "message_id" = 18425; "message_type" = 0; "prev_session_message_id" = 18424; "replied_message" = "More needed for me than for you !"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18422; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18425, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18425] "LocalWebSocketTask .<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask .<1>, NSLocalizedDescription=The network connection was lost.} "LocalWebSocketTask <6E11C228-B24A-4F7A-AC00-58DDE0A5B60C>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <6E11C228-B24A-4F7A-AC00-58DDE0A5B60C>.<1>} "LocalWebSocketTask .<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask .<1>} ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18429,"event_type":2} "content-available" = 1; }, AnyHashable("message_id"): 18428] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18429,"event_type":2} ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18432,"event_type":2} "content-available" = 1; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-21 18:54:13"; "file_name" = ""; message = "Oki Im not gonna say but.. \Ud83e\Udd13\Ud83e\Udd23"; "message_id" = 18435; "message_type" = 0; "prev_session_message_id" = 18434; "replied_message" = "But please when you reconnect I don't want you to be sorry. If you tell sorry a single time, you'll get punished \Ud83d\Ude08"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18432; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-21 18:54:13"; "file_name" = ""; message = "Oki Im not gonna say but.. \Ud83e\Udd13\Ud83e\Udd23"; "message_id" = 18435; "message_type" = 0; "prev_session_message_id" = 18434; "replied_message" = "But please when you reconnect I don't want you to be sorry. If you tell sorry a single time, you'll get punished \Ud83d\Ude08"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18432; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18435, AnyHashable("message_data"): { datesent = "2026-01-21 18:54:13"; "file_name" = ""; message = "Oki Im not gonna say but.. \Ud83e\Udd13\Ud83e\Udd23"; "message_id" = 18435; "message_type" = 0; "prev_session_message_id" = 18434; "replied_message" = "But please when you reconnect I don't want you to be sorry. If you tell sorry a single time, you'll get punished \Ud83d\Ude08"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18432; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("message_id"): 18435, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 18436, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18439] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18439] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18440, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18441] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18442, AnyHashable("message_data"): { datesent = "2026-01-21 18:56:25"; "file_name" = ""; message = "I want you to do 5 1-0s until tomorrow lunch time\Ud83d\Ude0f"; "message_id" = 18442; "message_type" = 0; "prev_session_message_id" = 18441; "replied_message" = "If my baby is in the mood and wants to give me orders for tonight in bed and / or tomorrow morning at wake up and / or under shower, her slave will have no other choice than to obey. If my baby is less in the mood, then absolutely no problem \U2764\Ufe0f"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18429; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-21 18:56:25"; "file_name" = ""; message = "I want you to do 5 1-0s until tomorrow lunch time\Ud83d\Ude0f"; "message_id" = 18442; "message_type" = 0; "prev_session_message_id" = 18441; "replied_message" = "If my baby is in the mood and wants to give me orders for tonight in bed and / or tomorrow morning at wake up and / or under shower, her slave will have no other choice than to obey. If my baby is less in the mood, then absolutely no problem \U2764\Ufe0f"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18429; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 18443] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-21 18:57:49"; "file_name" = ""; message = "You should start in 1 hr"; "message_id" = 18444; "message_type" = 0; "prev_session_message_id" = 18443; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18444] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-21 18:57:49"; "file_name" = ""; message = "You should start in 1 hr"; "message_id" = 18444; "message_type" = 0; "prev_session_message_id" = 18443; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18444] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-21 18:57:49"; "file_name" = ""; message = "You should start in 1 hr"; "message_id" = 18444; "message_type" = 0; "prev_session_message_id" = 18443; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18444] "content-available" = 1; }, AnyHashable("message_id"): 18444] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18445, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-21 18:58:12"; "file_name" = ""; message = "For the next sessions I\U2019ll let you know \Ud83d\Ude0f"; "message_id" = 18450; "message_type" = 0; "prev_session_message_id" = 18449; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18450, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "LocalWebSocketTask <993FA04D-7827-4411-B1BC-9A841D07A0D8>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <993FA04D-7827-4411-B1BC-9A841D07A0D8>.<1>} "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18452] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18455] "content-available" = 1; }, AnyHashable("message_id"): 18457] "content-available" = 1; }, AnyHashable("message_id"): 18458] "content-available" = 1; }, AnyHashable("message_id"): 18459] "content-available" = 1; }, AnyHashable("message_id"): 18460] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18460,"event_type":2} "content-available" = 1; }] datesent = "2026-01-21 20:16:37"; "file_name" = ""; message = "Babyy\Ud83d\Ude0d\Ud83d\Ude0d"; "message_id" = 18461; "message_type" = 0; "prev_session_message_id" = 18460; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18461, AnyHashable("aps"): { "content-available" = 1; }] "content-available" = 1; }] "content-available" = 1; }] datesent = "2026-01-21 20:17:37"; "file_name" = ""; message = "Before you sleep, you will do one more 1-0"; "message_id" = 18463; "message_type" = 0; "prev_session_message_id" = 18462; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 18463, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18464] "content-available" = 1; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18465, AnyHashable("message_data"): { datesent = "2026-01-21 20:18:44"; "file_name" = ""; message = "For 2nd round 10, for 3rd 15"; "message_id" = 18465; "message_type" = 0; "prev_session_message_id" = 18464; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("message_id"): 18465, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 18467] "content-available" = 1; }, AnyHashable("message_id"): 18468, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-21 20:20:52"; "file_name" = ""; message = "If you dont, then you will do morning, in that case you have to remain 15mins."; "message_id" = 18468; "message_type" = 0; "prev_session_message_id" = 18467; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 18468, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18469, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 18470, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 18471, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_data"): { datesent = "2026-01-21 20:21:48"; "file_name" = ""; message = "Please baby\Ud83d\Ude0f\Ud83d\Ude0f"; "message_id" = 18472; "message_type" = 0; "prev_session_message_id" = 18471; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("message_id"): 18472, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_data"): { datesent = "2026-01-21 20:22:26"; "file_name" = ""; message = "Probably I\U2019ll read all morning \Ud83e\Udd2d"; "message_id" = 18473; "message_type" = 0; "prev_session_message_id" = 18472; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("message_id"): 18474, AnyHashable("message_data"): { datesent = "2026-01-21 20:22:43"; "file_name" = ""; message = "Its 23:22 here, almost bedtime for me"; "message_id" = 18474; "message_type" = 0; "prev_session_message_id" = 18473; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18474] "content-available" = 1; }] datesent = "2026-01-21 20:22:50"; "file_name" = ""; message = "And office tomorrow \Ud83e\Udd72"; "message_id" = 18475; "message_type" = 0; "prev_session_message_id" = 18474; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18475, AnyHashable("aps"): { "content-available" = 1; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18475] "content-available" = 1; }, AnyHashable("message_data"): { datesent = "2026-01-21 20:30:25"; "file_name" = ""; message = "Good night \Ud83d\Ude0f\Ud83d\Ude0f\Ud83d\Ude0f"; "message_id" = 18478; "message_type" = 0; "prev_session_message_id" = 18477; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("message_id"): 18477, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18478] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 662] "content-available" = 1; }, AnyHashable("message_id"): 664, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 665, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 699, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 700] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 701] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 705] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 704] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 707, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 710, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 719, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 718, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 716] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 15913, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18514,"event_type":2} ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18534,"event_type":2}[02:59:32] [LOG] Pruned 15680 entries older than 3 hours "content-available" = 1; }, AnyHashable("operation_type"): 3] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18544,"event_type":2} "content-available" = 1; }] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18564,"event_type":2} "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 18607, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 18608] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18609, AnyHashable("operation_type"): 3] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 18611, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 18612, AnyHashable("operation_type"): 3] - stun:stun.l.google.com:19302 - turn:crivello.dyndns.org:3478?transport=udp - turn:crivello.dyndns.org:3478?transport=tcp - turns:crivello.dyndns.org:5349?transport=tcp "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 18601, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18599] "content-available" = 1; }] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18603] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18604] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18605] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18613] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18614] "content-available" = 1; }, AnyHashable("message_id"): 18615, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18616] "content-available" = 1; }, AnyHashable("message_id"): 18618, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 18617, AnyHashable("session_id"): ILUIWU] "LocalWebSocketTask .<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask .<1>, NSLocalizedDescription=The network connection was lost.} "LocalWebSocketTask <92DCA5D8-0B25-4C64-8AB6-2587258A16B7>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <92DCA5D8-0B25-4C64-8AB6-2587258A16B7>.<1>} "content-available" = 1; }] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "LocalWebSocketTask <5D60B215-CD05-4F5F-8702-F311400A96FC>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <5D60B215-CD05-4F5F-8702-F311400A96FC>.<1>, NSLocalizedDescription=The network connection was lost.} "content-available" = 1; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-22 06:37:22"; "file_name" = ""; message = "Thank youuu\U2665\Ufe0f\U2665\Ufe0f\U2665\Ufe0f\U2665\Ufe0f"; "message_id" = 18619; "message_type" = 0; "prev_session_message_id" = 18618; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18619] "content-available" = 1; }, AnyHashable("message_id"): 18619, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18621,"event_type":2} "content-available" = 1; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-22 07:19:55"; "file_name" = ""; message = "My looove\U2665\Ufe0f"; "message_id" = 18639; "message_type" = 0; "prev_session_message_id" = 18638; "replied_message" = ""; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18622; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("message_id"): 18639, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18641] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18657, AnyHashable("message_data"): { datesent = "2026-01-22 08:51:57"; "file_name" = ""; message = "ILU, I love the game that we are playing"; "message_id" = 18657; "message_type" = 0; "prev_session_message_id" = 18656; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] datesent = "2026-01-22 08:51:57"; "file_name" = ""; message = "ILU, I love the game that we are playing"; "message_id" = 18657; "message_type" = 0; "prev_session_message_id" = 18656; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] datesent = "2026-01-22 09:05:40"; "file_name" = ""; message = "Because ILU\U2665\Ufe0f because you deserve \U2665\Ufe0f because you are perfect \U2665\Ufe0f because you are mine !"; "message_id" = 18660; "message_type" = 0; "prev_session_message_id" = 18659; "replied_message" = "Why are you so kind to me ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18641; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-22 09:05:40"; "file_name" = ""; message = "Because ILU\U2665\Ufe0f because you deserve \U2665\Ufe0f because you are perfect \U2665\Ufe0f because you are mine !"; "message_id" = 18660; "message_type" = 0; "prev_session_message_id" = 18659; "replied_message" = "Why are you so kind to me ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18641; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18660, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-22 09:58:11"; "file_name" = ""; message = "ILU2\U2665\Ufe0f\U2665\Ufe0f\U2665\Ufe0f"; "message_id" = 18685; "message_type" = 0; "prev_session_message_id" = 18684; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18685] datesent = "2026-01-22 09:58:16"; "file_name" = ""; message = "I hope you enjoyed"; "message_id" = 18686; "message_type" = 0; "prev_session_message_id" = 18685; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18686, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }] datesent = "2026-01-22 09:58:16"; "file_name" = ""; message = "I hope you enjoyed"; "message_id" = 18686; "message_type" = 0; "prev_session_message_id" = 18685; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18686, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }] datesent = "2026-01-22 09:58:16"; "file_name" = ""; message = "I hope you enjoyed"; "message_id" = 18686; "message_type" = 0; "prev_session_message_id" = 18685; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18686, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18685] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18684] "content-available" = 1; }] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18689,"event_type":2} ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18689,"event_type":2} - stun:stun.l.google.com:19302 - turn:crivello.dyndns.org:3478?transport=udp - turn:crivello.dyndns.org:3478?transport=tcp - turns:crivello.dyndns.org:5349?transport=tcp "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18714, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18719, AnyHashable("message_data"): { datesent = "2026-01-22 11:55:56"; "file_name" = ""; message = "Just my hands\Ud83d\Ude0f\Ud83d\Ude0f???"; "message_id" = 18719; "message_type" = 0; "prev_session_message_id" = 18718; "replied_message" = "Your hands ARE on me"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18702; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("message_id"): 18718, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 18719, AnyHashable("session_id"): ILUIWU] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18720,"event_type":2} "LocalWebSocketTask <2B5C9C23-286B-4F70-9C58-A7DD50C4C270>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <2B5C9C23-286B-4F70-9C58-A7DD50C4C270>.<1>} "LocalWebSocketTask .<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask .<1>} "LocalWebSocketTask <581B959D-9707-4620-8EAE-676244B44AB5>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <581B959D-9707-4620-8EAE-676244B44AB5>.<1>} "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18720] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-22 12:42:30"; "file_name" = ""; message = "Me too my loveee"; "message_id" = 18722; "message_type" = 0; "prev_session_message_id" = 18721; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18722] "LocalWebSocketTask <0657C1BB-3D2A-4926-ABD6-04F95825EBC3>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <0657C1BB-3D2A-4926-ABD6-04F95825EBC3>.<1>} "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18723, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-22 12:42:33"; "file_name" = ""; message = "Me too\Ud83e\Udd72\Ud83e\Udd72\Ud83e\Udd72"; "message_id" = 18723; "message_type" = 0; "prev_session_message_id" = 18722; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18724, AnyHashable("message_data"): { datesent = "2026-01-22 12:43:07"; "file_name" = ""; message = "Im missing sleeping with you"; "message_id" = 18724; "message_type" = 0; "prev_session_message_id" = 18723; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "LocalWebSocketTask .<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask .<1>} datesent = "2026-01-22 12:43:07"; "file_name" = ""; message = "Im missing sleeping with you"; "message_id" = 18725; "message_type" = 0; "prev_session_message_id" = 18724; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 3; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18725] alert = { body = "New message received"; title = Eye; }; badge = 4; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-22 12:43:12"; "file_name" = ""; message = "Waking up with you"; "message_id" = 18726; "message_type" = 0; "prev_session_message_id" = 18725; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18726, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 5; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18727] "LocalDataTask .<387>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/chat/chat_get_messages.php?session_id=ILUIWU&viewer=1&messages=18727, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/chat/chat_get_messages.php?session_id=ILUIWU&viewer=1&messages=18727, _kCFStreamErrorDomainKey=4} "LocalWebSocketTask .<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask .<1>} "content-available" = 1; }, AnyHashable("message_id"): 18727, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "LocalWebSocketTask <3951D1BC-16A7-42EC-8B53-5CD520C747A3>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <3951D1BC-16A7-42EC-8B53-5CD520C747A3>.<1>} "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18723, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18725] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-22 13:25:20"; "file_name" = ""; message = "Good baby thanks\U2665\Ufe0f"; "message_id" = 18730; "message_type" = 0; "prev_session_message_id" = 18729; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] datesent = "2026-01-22 13:25:20"; "file_name" = ""; message = "Good baby thanks\U2665\Ufe0f"; "message_id" = 18730; "message_type" = 0; "prev_session_message_id" = 18729; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18730, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18730] datesent = "2026-01-22 13:25:39"; "file_name" = ""; message = "Done for me\Ud83e\Udd13\Ud83e\Udd13"; "message_id" = 18732; "message_type" = 0; "prev_session_message_id" = 18731; "replied_message" = "Last meeting of the day starting now \Ud83d\Ude0a"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18728; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18732, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] datesent = "2026-01-22 13:25:39"; "file_name" = ""; message = "Done for me\Ud83e\Udd13\Ud83e\Udd13"; "message_id" = 18732; "message_type" = 0; "prev_session_message_id" = 18731; "replied_message" = "Last meeting of the day starting now \Ud83d\Ude0a"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18728; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18732, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] datesent = "2026-01-22 13:25:39"; "file_name" = ""; message = "Done for me\Ud83e\Udd13\Ud83e\Udd13"; "message_id" = 18732; "message_type" = 0; "prev_session_message_id" = 18731; "replied_message" = "Last meeting of the day starting now \Ud83d\Ude0a"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18728; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18732, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 18731, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 18733, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18734, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18735,"event_type":2} "content-available" = 1; }, AnyHashable("operation_type"): 3] datesent = "2026-01-22 13:27:01"; "file_name" = ""; message = "Nope baby, I wont"; "message_id" = 18736; "message_type" = 0; "prev_session_message_id" = 18735; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18736, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] datesent = "2026-01-22 13:27:01"; "file_name" = ""; message = "Nope baby, I wont"; "message_id" = 18736; "message_type" = 0; "prev_session_message_id" = 18735; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18736, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] datesent = "2026-01-22 13:27:01"; "file_name" = ""; message = "Nope baby, I wont"; "message_id" = 18736; "message_type" = 0; "prev_session_message_id" = 18735; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18736, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18736] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-22 13:27:11"; "file_name" = ""; message = "My neck is still hurting a bit"; "message_id" = 18737; "message_type" = 0; "prev_session_message_id" = 18736; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18737] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-22 13:27:11"; "file_name" = ""; message = "My neck is still hurting a bit"; "message_id" = 18737; "message_type" = 0; "prev_session_message_id" = 18736; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18737] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-22 13:27:11"; "file_name" = ""; message = "My neck is still hurting a bit"; "message_id" = 18737; "message_type" = 0; "prev_session_message_id" = 18736; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18737] "content-available" = 1; }, AnyHashable("message_id"): 18737, AnyHashable("operation_type"): 3] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-22 13:27:24"; "file_name" = ""; message = "In 30 mins I hope"; "message_id" = 18738; "message_type" = 0; "prev_session_message_id" = 18737; "replied_message" = "Leaving not too late today ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18734; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18738] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-22 13:27:24"; "file_name" = ""; message = "In 30 mins I hope"; "message_id" = 18738; "message_type" = 0; "prev_session_message_id" = 18737; "replied_message" = "Leaving not too late today ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18734; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18738] datesent = "2026-01-22 13:27:24"; "file_name" = ""; message = "In 30 mins I hope"; "message_id" = 18738; "message_type" = 0; "prev_session_message_id" = 18737; "replied_message" = "Leaving not too late today ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18734; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18738, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 18738, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18739,"event_type":2} "content-available" = 1; }] "LocalWebSocketTask .<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask .<1>} - stun:stun.l.google.com:19302 - turn:crivello.dyndns.org:3478?transport=udp - turn:crivello.dyndns.org:3478?transport=tcp - turns:crivello.dyndns.org:5349?transport=tcp datesent = "2026-01-22 14:00:14"; "file_name" = ""; message = "In 30 mins I hope"; "message_id" = 18740; "message_type" = 0; "prev_session_message_id" = 18739; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18740, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-22 14:00:14"; "file_name" = ""; message = "In 30 mins I hope"; "message_id" = 18740; "message_type" = 0; "prev_session_message_id" = 18739; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18740, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-22 14:00:14"; "file_name" = ""; message = "In 30 mins I hope"; "message_id" = 18740; "message_type" = 0; "prev_session_message_id" = 18739; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18740] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18741, AnyHashable("message_data"): { datesent = "2026-01-22 14:00:14"; "file_name" = ""; message = "In 30 mins I hope"; "message_id" = 18741; "message_type" = 0; "prev_session_message_id" = 18740; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18741, AnyHashable("message_data"): { datesent = "2026-01-22 14:00:14"; "file_name" = ""; message = "In 30 mins I hope"; "message_id" = 18741; "message_type" = 0; "prev_session_message_id" = 18740; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18741, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-22 14:00:14"; "file_name" = ""; message = "In 30 mins I hope"; "message_id" = 18741; "message_type" = 0; "prev_session_message_id" = 18740; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18741, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-22 14:11:14"; "file_name" = ""; message = "Leaving now \Ud83d\Ude43\Ud83d\Ude43"; "message_id" = 18742; "message_type" = 0; "prev_session_message_id" = 18741; "replied_message" = "Leaving not too late today ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18734; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-22 14:11:14"; "file_name" = ""; message = "Leaving now \Ud83d\Ude43\Ud83d\Ude43"; "message_id" = 18742; "message_type" = 0; "prev_session_message_id" = 18741; "replied_message" = "Leaving not too late today ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18734; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-22 14:11:14"; "file_name" = ""; message = "Leaving now \Ud83d\Ude43\Ud83d\Ude43"; "message_id" = 18742; "message_type" = 0; "prev_session_message_id" = 18741; "replied_message" = "Leaving not too late today ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18734; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18744, AnyHashable("operation_type"): 0] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18743] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18746,"event_type":2} "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18747, AnyHashable("session_id"): ILUIWU] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18746,"event_type":2} "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18748] "content-available" = 1; }] datesent = "2026-01-22 17:47:58"; "file_name" = ""; message = "Before vacation my love"; "message_id" = 18755; "message_type" = 0; "prev_session_message_id" = 18754; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18755] "content-available" = 1; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-22 17:48:09"; "file_name" = ""; message = "Couldn\U2019t remember the exact date"; "message_id" = 18756; "message_type" = 0; "prev_session_message_id" = 18755; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18756, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("operation_type"): 2, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18756] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18756] "content-available" = 1; }, AnyHashable("operation_type"): 2, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18756] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18757,"event_type":2} "LocalWebSocketTask .<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask .<1>} "content-available" = 1; }, AnyHashable("message_id"): 18758, AnyHashable("message_data"): { datesent = "2026-01-22 19:47:48"; "file_name" = ""; message = "Nope baby, Im not feeling well %100, probably I\U2019ll be sick \Ud83e\Udd12"; "message_id" = 18758; "message_type" = 0; "prev_session_message_id" = 18757; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18758] "content-available" = 1; }, AnyHashable("message_id"): 18761, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 18763, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }][06:07:22] [LOG] Pruned 2394 entries older than 3 hours "content-available" = 1; }, AnyHashable("message_id"): 18767] "content-available" = 1; }] datesent = "2026-01-23 07:19:58"; "file_name" = ""; message = "And you?"; "message_id" = 18771; "message_type" = 0; "prev_session_message_id" = 18770; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18771, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-23 07:19:58"; "file_name" = ""; message = "And you?"; "message_id" = 18771; "message_type" = 0; "prev_session_message_id" = 18770; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18771, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18771, AnyHashable("message_data"): { datesent = "2026-01-23 07:19:58"; "file_name" = ""; message = "And you?"; "message_id" = 18771; "message_type" = 0; "prev_session_message_id" = 18770; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("message_id"): 18772, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 18775, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 18774] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("operation_type"): 3] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 07:21:19"; "file_name" = ""; message = "Seems home for you\Ud83e\Udd70"; "message_id" = 18777; "message_type" = 0; "prev_session_message_id" = 18776; "replied_message" = ""; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18774; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18777] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 07:21:19"; "file_name" = ""; message = "Seems home for you\Ud83e\Udd70"; "message_id" = 18777; "message_type" = 0; "prev_session_message_id" = 18776; "replied_message" = ""; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18774; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18777] datesent = "2026-01-23 07:21:19"; "file_name" = ""; message = "Seems home for you\Ud83e\Udd70"; "message_id" = 18777; "message_type" = 0; "prev_session_message_id" = 18776; "replied_message" = ""; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18774; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18777, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("message_id"): 18777, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18778, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-23 07:21:23"; "file_name" = ""; message = Yeap; "message_id" = 18778; "message_type" = 0; "prev_session_message_id" = 18777; "replied_message" = "Office ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18776; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18778, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-23 07:21:23"; "file_name" = ""; message = Yeap; "message_id" = 18778; "message_type" = 0; "prev_session_message_id" = 18777; "replied_message" = "Office ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18776; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18778, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-23 07:21:23"; "file_name" = ""; message = Yeap; "message_id" = 18778; "message_type" = 0; "prev_session_message_id" = 18777; "replied_message" = "Office ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18776; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("message_id"): 18778] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18779] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18780, AnyHashable("message_data"): { datesent = "2026-01-23 07:21:56"; "file_name" = ""; message = "Happy for you babyy"; "message_id" = 18780; "message_type" = 0; "prev_session_message_id" = 18779; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "LocalWebSocketTask .<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask .<1>} alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18780, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-23 07:21:56"; "file_name" = ""; message = "Happy for you babyy"; "message_id" = 18780; "message_type" = 0; "prev_session_message_id" = 18779; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] datesent = "2026-01-23 07:22:11"; "file_name" = ""; message = "2nd for me \Ud83e\Udd2d\Ud83e\Udd2d"; "message_id" = 18781; "message_type" = 0; "prev_session_message_id" = 18780; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18781, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-23 07:22:11"; "file_name" = ""; message = "2nd for me \Ud83e\Udd2d\Ud83e\Udd2d"; "message_id" = 18781; "message_type" = 0; "prev_session_message_id" = 18780; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18781, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3] datesent = "2026-01-23 07:22:37"; "file_name" = ""; message = "Ha ha true \Ud83e\Udd23"; "message_id" = 18784; "message_type" = 0; "prev_session_message_id" = 18783; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18784] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18784, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-23 07:22:37"; "file_name" = ""; message = "Ha ha true \Ud83e\Udd23"; "message_id" = 18784; "message_type" = 0; "prev_session_message_id" = 18783; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] datesent = "2026-01-23 07:30:08"; "file_name" = ""; message = "Alone?"; "message_id" = 18785; "message_type" = 0; "prev_session_message_id" = 18784; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18785, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18788, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18791, AnyHashable("message_data"): { datesent = "2026-01-23 09:27:57"; "file_name" = ""; message = "Hi babyyyy"; "message_id" = 18791; "message_type" = 0; "prev_session_message_id" = 18790; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 09:27:57"; "file_name" = ""; message = "Hi babyyyy"; "message_id" = 18791; "message_type" = 0; "prev_session_message_id" = 18790; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18791, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] "content-available" = 1; }] "LocalDataTask <63C09C9E-3ABC-4476-8348-1E3B8EEE98A3>.<235>" ), NSLocalizedDescription=The network connection was lost., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, _kCFStreamErrorDomainKey=1} datesent = "2026-01-23 09:50:29"; "file_name" = ""; message = "No, Im not actually baby"; "message_id" = 18794; "message_type" = 0; "prev_session_message_id" = 18793; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18794, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18794, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18794] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18796, AnyHashable("message_data"): { datesent = "2026-01-23 09:51:11"; "file_name" = ""; message = "Because Im not believing this process tbh \Ud83d\Ude43"; "message_id" = 18796; "message_type" = 0; "prev_session_message_id" = 18795; "replied_message" = "No, Im not actually baby"; "replied_sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "replied_sender_name" = Esra; "reply_to_id" = 18794; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-23 09:51:11"; "file_name" = ""; message = "Because Im not believing this process tbh \Ud83d\Ude43"; "message_id" = 18796; "message_type" = 0; "prev_session_message_id" = 18795; "replied_message" = "No, Im not actually baby"; "replied_sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "replied_sender_name" = Esra; "reply_to_id" = 18794; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18798, AnyHashable("message_data"): { datesent = "2026-01-23 09:51:42"; "file_name" = ""; message = "Some presentation maybe, but depends on the participants or subjects"; "message_id" = 18798; "message_type" = 0; "prev_session_message_id" = 18797; "replied_message" = "Good. Relaxed baby. What is stressing you in life ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18795; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18798, AnyHashable("message_data"): { datesent = "2026-01-23 09:51:42"; "file_name" = ""; message = "Some presentation maybe, but depends on the participants or subjects"; "message_id" = 18798; "message_type" = 0; "prev_session_message_id" = 18797; "replied_message" = "Good. Relaxed baby. What is stressing you in life ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18795; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-23 09:51:42"; "file_name" = ""; message = "Some presentation maybe, but depends on the participants or subjects"; "message_id" = 18798; "message_type" = 0; "prev_session_message_id" = 18797; "replied_message" = "Good. Relaxed baby. What is stressing you in life ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18795; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 18799, AnyHashable("operation_type"): 3] datesent = "2026-01-23 09:53:00"; "file_name" = ""; message = "You are not getting a note depends on your value that you created, its more related to other\U2019s."; "message_id" = 18801; "message_type" = 0; "prev_session_message_id" = 18800; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18801, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] "content-available" = 1; }] "content-available" = 1; }] datesent = "2026-01-23 10:32:37"; "file_name" = ""; message = "\Ud83e\Udd2d\Ud83e\Udd2d\Ud83e\Udd2d\Ud83e\Udd2d"; "message_id" = 18804; "message_type" = 0; "prev_session_message_id" = 18803; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18804, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3] datesent = "2026-01-23 10:33:12"; "file_name" = ""; message = "Thank youuuuu my love\U2665\Ufe0f"; "message_id" = 18806; "message_type" = 0; "prev_session_message_id" = 18805; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18806, AnyHashable("message_data"): { datesent = "2026-01-23 10:33:12"; "file_name" = ""; message = "Thank youuuuu my love\U2665\Ufe0f"; "message_id" = 18806; "message_type" = 0; "prev_session_message_id" = 18805; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18806] "LocalDataTask <83BC1087-D9BF-4F0F-BEC1-ACB966ADF67B>.<357>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, _kCFStreamErrorDomainKey=4} alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 11:21:26"; "file_name" = ""; message = "And Im happy for both of us\Ud83e\Udd70"; "message_id" = 18809; "message_type" = 0; "prev_session_message_id" = 18808; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18809] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-23 11:21:26"; "file_name" = ""; message = "And Im happy for both of us\Ud83e\Udd70"; "message_id" = 18809; "message_type" = 0; "prev_session_message_id" = 18808; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18809, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18809, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18810, AnyHashable("operation_type"): 3] "content-available" = 1; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18812, AnyHashable("message_data"): { datesent = "2026-01-23 11:21:55"; "file_name" = ""; message = "\U2665\Ufe0f\U2665\Ufe0f"; "message_id" = 18812; "message_type" = 0; "prev_session_message_id" = 18811; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "LocalWebSocketTask <5069D1ED-9A99-41EC-A5E9-210B01E3D71A>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <5069D1ED-9A99-41EC-A5E9-210B01E3D71A>.<1>} "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18812, AnyHashable("operation_type"): 3] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 11:22:15"; "file_name" = ""; message = "Im surprised actually, I was thinking 2-2 \Ud83e\Udd23"; "message_id" = 18813; "message_type" = 0; "prev_session_message_id" = 18812; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "LocalWebSocketTask <66092B1B-4575-4193-8F49-5AA577F4EE09>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <66092B1B-4575-4193-8F49-5AA577F4EE09>.<1>} "content-available" = 1; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-23 11:30:03"; "file_name" = ""; message = "Thank you my loooove\U2665\Ufe0f"; "message_id" = 18815; "message_type" = 0; "prev_session_message_id" = 18814; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] datesent = "2026-01-23 11:30:03"; "file_name" = ""; message = "Thank you my loooove\U2665\Ufe0f"; "message_id" = 18815; "message_type" = 0; "prev_session_message_id" = 18814; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-23 11:30:03"; "file_name" = ""; message = "Thank you my loooove\U2665\Ufe0f"; "message_id" = 18815; "message_type" = 0; "prev_session_message_id" = 18814; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 18815, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-23 12:38:29"; "file_name" = ""; message = "I didn\U2019t know I had so many options \Ud83d\Ude43"; "message_id" = 18817; "message_type" = 0; "prev_session_message_id" = 18816; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18817, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("message_id"): 18817, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }] alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18818] alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18818] "content-available" = 1; }, AnyHashable("message_id"): 18818] alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18818] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("operation_type"): 3] datesent = "2026-01-23 13:11:18"; "file_name" = ""; message = "I was thinking the same before but global position much more better I think. What is your opinion"; "message_id" = 18823; "message_type" = 0; "prev_session_message_id" = 18822; "replied_message" = "Oh wow. I would have bet you would choose IT OPS Manager. But indeed maybe program or delivery manager suits you more."; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18821; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-23 13:11:18"; "file_name" = ""; message = "I was thinking the same before but global position much more better I think. What is your opinion"; "message_id" = 18823; "message_type" = 0; "prev_session_message_id" = 18822; "replied_message" = "Oh wow. I would have bet you would choose IT OPS Manager. But indeed maybe program or delivery manager suits you more."; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18821; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-23 13:11:18"; "file_name" = ""; message = "I was thinking the same before but global position much more better I think. What is your opinion"; "message_id" = 18823; "message_type" = 0; "prev_session_message_id" = 18822; "replied_message" = "Oh wow. I would have bet you would choose IT OPS Manager. But indeed maybe program or delivery manager suits you more."; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18821; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18823, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 13:11:28"; "file_name" = ""; message = "Mmmm\Ud83e\Udd29\Ud83e\Udd29\Ud83e\Udd29"; "message_id" = 18825; "message_type" = 0; "prev_session_message_id" = 18824; "replied_message" = ""; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18822; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18825] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 13:11:28"; "file_name" = ""; message = "Mmmm\Ud83e\Udd29\Ud83e\Udd29\Ud83e\Udd29"; "message_id" = 18825; "message_type" = 0; "prev_session_message_id" = 18824; "replied_message" = ""; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18822; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18825] datesent = "2026-01-23 13:11:28"; "file_name" = ""; message = "Mmmm\Ud83e\Udd29\Ud83e\Udd29\Ud83e\Udd29"; "message_id" = 18825; "message_type" = 0; "prev_session_message_id" = 18824; "replied_message" = ""; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18822; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18825, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18824] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18825, AnyHashable("operation_type"): 3] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 13:13:43"; "file_name" = ""; message = "Yes, I dont want \Ud83e\Udd23"; "message_id" = 18828; "message_type" = 0; "prev_session_message_id" = 18827; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18828] "content-available" = 1; }] alert = { body = ""; title = StreamCam; }; badge = 0; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 2, AnyHashable("message_id"): 18828, AnyHashable("session_id"): ILUIWU] alert = { body = ""; title = StreamCam; }; badge = 0; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 2, AnyHashable("message_id"): 18828, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18828, AnyHashable("operation_type"): 3] alert = { body = ""; title = StreamCam; }; badge = 0; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18828, AnyHashable("operation_type"): 2, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18829] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 13:14:02"; "file_name" = ""; message = Truee; "message_id" = 18830; "message_type" = 0; "prev_session_message_id" = 18829; "replied_message" = "The IT OPS Manager until last year was more sexy. But now with vision it will quickly become a 1 man show. Delivery more visible."; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18826; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18830] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 13:14:02"; "file_name" = ""; message = Truee; "message_id" = 18830; "message_type" = 0; "prev_session_message_id" = 18829; "replied_message" = "The IT OPS Manager until last year was more sexy. But now with vision it will quickly become a 1 man show. Delivery more visible."; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18826; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18830] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 13:14:02"; "file_name" = ""; message = Truee; "message_id" = 18830; "message_type" = 0; "prev_session_message_id" = 18829; "replied_message" = "The IT OPS Manager until last year was more sexy. But now with vision it will quickly become a 1 man show. Delivery more visible."; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18826; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18830] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18830] datesent = "2026-01-23 13:14:13"; "file_name" = ""; message = "Ha ha \Ud83e\Udd23\Ud83e\Udd23"; "message_id" = 18831; "message_type" = 0; "prev_session_message_id" = 18830; "replied_message" = "Babyyyy. You're sooo mean"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18829; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18831, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-23 13:14:13"; "file_name" = ""; message = "Ha ha \Ud83e\Udd23\Ud83e\Udd23"; "message_id" = 18831; "message_type" = 0; "prev_session_message_id" = 18830; "replied_message" = "Babyyyy. You're sooo mean"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18829; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18831, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-23 13:14:13"; "file_name" = ""; message = "Ha ha \Ud83e\Udd23\Ud83e\Udd23"; "message_id" = 18831; "message_type" = 0; "prev_session_message_id" = 18830; "replied_message" = "Babyyyy. You're sooo mean"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18829; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18831, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 18832, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18833, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-23 13:14:57"; "file_name" = ""; message = "But it means taht being a king of nothing \Ud83e\Udd23 and this also good if you can manage"; "message_id" = 18833; "message_type" = 0; "prev_session_message_id" = 18832; "replied_message" = "The IT OPS Manager until last year was more sexy. But now with vision it will quickly become a 1 man show. Delivery more visible."; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18826; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 13:14:57"; "file_name" = ""; message = "But it means taht being a king of nothing \Ud83e\Udd23 and this also good if you can manage"; "message_id" = 18833; "message_type" = 0; "prev_session_message_id" = 18832; "replied_message" = "The IT OPS Manager until last year was more sexy. But now with vision it will quickly become a 1 man show. Delivery more visible."; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18826; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18833] "content-available" = 1; }, AnyHashable("message_id"): 18833] datesent = "2026-01-23 13:18:12"; "file_name" = ""; message = "Mmmm\Ud83e\Udd29\Ud83e\Udd29\Ud83e\Udd29"; "message_id" = 18835; "message_type" = 0; "prev_session_message_id" = 18834; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18835, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-23 13:18:12"; "file_name" = ""; message = "Mmmm\Ud83e\Udd29\Ud83e\Udd29\Ud83e\Udd29"; "message_id" = 18835; "message_type" = 0; "prev_session_message_id" = 18834; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18835, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-23 13:18:12"; "file_name" = ""; message = "Mmmm\Ud83e\Udd29\Ud83e\Udd29\Ud83e\Udd29"; "message_id" = 18835; "message_type" = 0; "prev_session_message_id" = 18834; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18836, AnyHashable("message_data"): { datesent = "2026-01-23 13:18:12"; "file_name" = ""; message = "Mmmm\Ud83e\Udd29\Ud83e\Udd29\Ud83e\Udd29"; "message_id" = 18836; "message_type" = 0; "prev_session_message_id" = 18835; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18836, AnyHashable("message_data"): { datesent = "2026-01-23 13:18:12"; "file_name" = ""; message = "Mmmm\Ud83e\Udd29\Ud83e\Udd29\Ud83e\Udd29"; "message_id" = 18836; "message_type" = 0; "prev_session_message_id" = 18835; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] datesent = "2026-01-23 13:18:12"; "file_name" = ""; message = "Mmmm\Ud83e\Udd29\Ud83e\Udd29\Ud83e\Udd29"; "message_id" = 18836; "message_type" = 0; "prev_session_message_id" = 18835; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18836, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18836] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18834] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18837, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-23 13:18:20"; "file_name" = ""; message = "\Ud83e\Udd70\Ud83e\Udd70\Ud83e\Udd70"; "message_id" = 18837; "message_type" = 0; "prev_session_message_id" = 18836; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-23 13:18:20"; "file_name" = ""; message = "\Ud83e\Udd70\Ud83e\Udd70\Ud83e\Udd70"; "message_id" = 18837; "message_type" = 0; "prev_session_message_id" = 18836; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18837, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-23 13:18:20"; "file_name" = ""; message = "\Ud83e\Udd70\Ud83e\Udd70\Ud83e\Udd70"; "message_id" = 18837; "message_type" = 0; "prev_session_message_id" = 18836; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18837, AnyHashable("operation_type"): 0] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18838] datesent = "2026-01-23 13:18:36"; "file_name" = ""; message = "Do I have a potential ?"; "message_id" = 18839; "message_type" = 0; "prev_session_message_id" = 18838; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18839, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 13:18:36"; "file_name" = ""; message = "Do I have a potential ?"; "message_id" = 18839; "message_type" = 0; "prev_session_message_id" = 18838; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18839] "content-available" = 1; }, AnyHashable("message_id"): 18839] datesent = "2026-01-23 13:22:02"; "file_name" = ""; message = "What\U2019s yours?"; "message_id" = 18843; "message_type" = 0; "prev_session_message_id" = 18842; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18843, AnyHashable("message_data"): { datesent = "2026-01-23 13:22:02"; "file_name" = ""; message = "What\U2019s yours?"; "message_id" = 18843; "message_type" = 0; "prev_session_message_id" = 18842; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] "content-available" = 1; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 14:02:31"; "file_name" = ""; message = "Wow, 10 years???! Really \Ud83d\Ude33\Ud83d\Ude33\Ud83d\Ude33\Ud83d\Ude33"; "message_id" = 18845; "message_type" = 0; "prev_session_message_id" = 18844; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-23 14:02:31"; "file_name" = ""; message = "Wow, 10 years???! Really \Ud83d\Ude33\Ud83d\Ude33\Ud83d\Ude33\Ud83d\Ude33"; "message_id" = 18845; "message_type" = 0; "prev_session_message_id" = 18844; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18845] "content-available" = 1; }, AnyHashable("message_id"): 18845] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18842] datesent = "2026-01-23 14:02:40"; "file_name" = ""; message = "You deserve more!"; "message_id" = 18846; "message_type" = 0; "prev_session_message_id" = 18845; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-23 14:02:40"; "file_name" = ""; message = "You deserve more!"; "message_id" = 18846; "message_type" = 0; "prev_session_message_id" = 18845; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-23 14:02:40"; "file_name" = ""; message = "You deserve more!"; "message_id" = 18846; "message_type" = 0; "prev_session_message_id" = 18845; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18846] "content-available" = 1; }, AnyHashable("message_id"): 18846, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] datesent = "2026-01-23 14:02:53"; "file_name" = ""; message = Baby; "message_id" = 18847; "message_type" = 0; "prev_session_message_id" = 18846; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18847] datesent = "2026-01-23 14:02:53"; "file_name" = ""; message = Baby; "message_id" = 18847; "message_type" = 0; "prev_session_message_id" = 18846; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18847] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-23 14:02:53"; "file_name" = ""; message = Baby; "message_id" = 18847; "message_type" = 0; "prev_session_message_id" = 18846; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18847, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18847, AnyHashable("operation_type"): 3] datesent = "2026-01-23 14:02:59"; "file_name" = ""; message = "An order for you"; "message_id" = 18849; "message_type" = 0; "prev_session_message_id" = 18848; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18849] datesent = "2026-01-23 14:02:59"; "file_name" = ""; message = "An order for you"; "message_id" = 18849; "message_type" = 0; "prev_session_message_id" = 18848; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18849] alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18849, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-23 14:02:59"; "file_name" = ""; message = "An order for you"; "message_id" = 18849; "message_type" = 0; "prev_session_message_id" = 18848; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18849] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18848] datesent = "2026-01-23 14:03:15"; "file_name" = ""; message = "I want you to come tonight!"; "message_id" = 18850; "message_type" = 0; "prev_session_message_id" = 18849; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18850, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-23 14:03:15"; "file_name" = ""; message = "I want you to come tonight!"; "message_id" = 18850; "message_type" = 0; "prev_session_message_id" = 18849; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18850, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-23 14:03:15"; "file_name" = ""; message = "I want you to come tonight!"; "message_id" = 18850; "message_type" = 0; "prev_session_message_id" = 18849; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18850, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 18850, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] datesent = "2026-01-23 14:03:25"; "file_name" = ""; message = "\Ud83e\Udd7a\Ud83e\Udd7a\Ud83e\Udd7a"; "message_id" = 18851; "message_type" = 0; "prev_session_message_id" = 18850; "replied_message" = "Yeah baby. But blocked 8 years by Amar and Natascia."; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18848; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18851, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] datesent = "2026-01-23 14:03:25"; "file_name" = ""; message = "\Ud83e\Udd7a\Ud83e\Udd7a\Ud83e\Udd7a"; "message_id" = 18851; "message_type" = 0; "prev_session_message_id" = 18850; "replied_message" = "Yeah baby. But blocked 8 years by Amar and Natascia."; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18848; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18851, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] datesent = "2026-01-23 14:03:25"; "file_name" = ""; message = "\Ud83e\Udd7a\Ud83e\Udd7a\Ud83e\Udd7a"; "message_id" = 18851; "message_type" = 0; "prev_session_message_id" = 18850; "replied_message" = "Yeah baby. But blocked 8 years by Amar and Natascia."; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18848; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18851, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18853, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18854, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 14:04:18"; "file_name" = ""; message = "I want you to come! There is no but !"; "message_id" = 18856; "message_type" = 0; "prev_session_message_id" = 18855; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18856, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18856, AnyHashable("message_data"): { datesent = "2026-01-23 14:04:18"; "file_name" = ""; message = "I want you to come! There is no but !"; "message_id" = 18856; "message_type" = 0; "prev_session_message_id" = 18855; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18856, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-23 14:04:26"; "file_name" = ""; message = "I will"; "message_id" = 18857; "message_type" = 0; "prev_session_message_id" = 18856; "replied_message" = "You can me suffer much more"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18854; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18857, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-23 14:04:26"; "file_name" = ""; message = "I will"; "message_id" = 18857; "message_type" = 0; "prev_session_message_id" = 18856; "replied_message" = "You can me suffer much more"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18854; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18857, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-23 14:04:26"; "file_name" = ""; message = "I will"; "message_id" = 18857; "message_type" = 0; "prev_session_message_id" = 18856; "replied_message" = "You can me suffer much more"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18854; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18857, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18858, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-23 14:04:47"; "file_name" = ""; message = "But this is what I want right now"; "message_id" = 18858; "message_type" = 0; "prev_session_message_id" = 18857; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18858, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-23 14:04:47"; "file_name" = ""; message = "But this is what I want right now"; "message_id" = 18858; "message_type" = 0; "prev_session_message_id" = 18857; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] datesent = "2026-01-23 14:04:47"; "file_name" = ""; message = "But this is what I want right now"; "message_id" = 18858; "message_type" = 0; "prev_session_message_id" = 18857; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18858, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18858] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 14:12:56"; "file_name" = ""; message = "You have to think about me for sure \Ud83d\Ude0f\Ud83d\Ude09"; "message_id" = 18860; "message_type" = 0; "prev_session_message_id" = 18859; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18860] "content-available" = 1; }, AnyHashable("message_id"): 18860] datesent = "2026-01-23 14:13:23"; "file_name" = ""; message = "But it doesn\U2019t matter with her or alone. You decide !"; "message_id" = 18861; "message_type" = 0; "prev_session_message_id" = 18860; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18861, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-23 14:13:23"; "file_name" = ""; message = "But it doesn\U2019t matter with her or alone. You decide !"; "message_id" = 18861; "message_type" = 0; "prev_session_message_id" = 18860; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18861, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 14:13:23"; "file_name" = ""; message = "But it doesn\U2019t matter with her or alone. You decide !"; "message_id" = 18861; "message_type" = 0; "prev_session_message_id" = 18860; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18861] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18861] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 18859, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18863] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18865] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18865,"event_type":2} "content-available" = 1; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18866, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18866, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18866] datesent = "2026-01-23 14:43:44"; "file_name" = ""; message = "IWU2 my looooove\U2665\Ufe0f"; "message_id" = 18867; "message_type" = 0; "prev_session_message_id" = 18866; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18867, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-23 14:43:44"; "file_name" = ""; message = "IWU2 my looooove\U2665\Ufe0f"; "message_id" = 18867; "message_type" = 0; "prev_session_message_id" = 18866; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18867, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18867, AnyHashable("message_data"): { datesent = "2026-01-23 14:43:44"; "file_name" = ""; message = "IWU2 my looooove\U2665\Ufe0f"; "message_id" = 18867; "message_type" = 0; "prev_session_message_id" = 18866; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] "content-available" = 1; }] datesent = "2026-01-23 14:44:19"; "file_name" = ""; message = "Dinner at swiss with melis\Ud83d\Ude43"; "message_id" = 18869; "message_type" = 0; "prev_session_message_id" = 18868; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18869, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-23 14:44:28"; "file_name" = ""; message = "You saw on my agenda \Ud83e\Udd2d"; "message_id" = 18870; "message_type" = 0; "prev_session_message_id" = 18869; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18870] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-23 14:44:28"; "file_name" = ""; message = "You saw on my agenda \Ud83e\Udd2d"; "message_id" = 18870; "message_type" = 0; "prev_session_message_id" = 18869; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18870] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18870, AnyHashable("message_data"): { datesent = "2026-01-23 14:44:28"; "file_name" = ""; message = "You saw on my agenda \Ud83e\Udd2d"; "message_id" = 18870; "message_type" = 0; "prev_session_message_id" = 18869; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18870, AnyHashable("operation_type"): 3] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 18872] "content-available" = 1; }, AnyHashable("message_id"): 18873, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18873, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18873, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18873, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-23 14:46:03"; "file_name" = ""; message = "\Ud83e\Udd70\Ud83e\Udd70\Ud83e\Udd70"; "message_id" = 18877; "message_type" = 0; "prev_session_message_id" = 18876; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18877] datesent = "2026-01-23 14:46:03"; "file_name" = ""; message = "\Ud83e\Udd70\Ud83e\Udd70\Ud83e\Udd70"; "message_id" = 18877; "message_type" = 0; "prev_session_message_id" = 18876; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("message_id"): 18877, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18878, AnyHashable("message_data"): { datesent = "2026-01-23 14:46:29"; "file_name" = ""; message = "Have you ever tried anything different with your wife during sex?"; "message_id" = 18878; "message_type" = 0; "prev_session_message_id" = 18877; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18878] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18878] datesent = "2026-01-23 14:46:43"; "file_name" = ""; message = "Or what was the different one\Ud83e\Udd2d"; "message_id" = 18879; "message_type" = 0; "prev_session_message_id" = 18878; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-23 14:46:43"; "file_name" = ""; message = "Or what was the different one\Ud83e\Udd2d"; "message_id" = 18879; "message_type" = 0; "prev_session_message_id" = 18878; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-23 14:46:43"; "file_name" = ""; message = "Or what was the different one\Ud83e\Udd2d"; "message_id" = 18879; "message_type" = 0; "prev_session_message_id" = 18878; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18879] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18879] datesent = "2026-01-23 14:46:55"; "file_name" = ""; message = "I want you to try something different today"; "message_id" = 18880; "message_type" = 0; "prev_session_message_id" = 18879; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18880, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-23 14:46:55"; "file_name" = ""; message = "I want you to try something different today"; "message_id" = 18880; "message_type" = 0; "prev_session_message_id" = 18879; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18880, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-23 14:46:55"; "file_name" = ""; message = "I want you to try something different today"; "message_id" = 18880; "message_type" = 0; "prev_session_message_id" = 18879; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18880, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18880] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18881, AnyHashable("message_data"): { datesent = "2026-01-23 14:47:02"; "file_name" = ""; message = "Different position maybe"; "message_id" = 18881; "message_type" = 0; "prev_session_message_id" = 18880; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18881, AnyHashable("message_data"): { datesent = "2026-01-23 14:47:02"; "file_name" = ""; message = "Different position maybe"; "message_id" = 18881; "message_type" = 0; "prev_session_message_id" = 18880; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 14:47:02"; "file_name" = ""; message = "Different position maybe"; "message_id" = 18881; "message_type" = 0; "prev_session_message_id" = 18880; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("message_id"): 18881, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18875] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18875] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18882] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 14:47:47"; "file_name" = ""; message = "What about oral sex?"; "message_id" = 18883; "message_type" = 0; "prev_session_message_id" = 18882; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 14:47:47"; "file_name" = ""; message = "What about oral sex?"; "message_id" = 18883; "message_type" = 0; "prev_session_message_id" = 18882; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 14:47:47"; "file_name" = ""; message = "What about oral sex?"; "message_id" = 18883; "message_type" = 0; "prev_session_message_id" = 18882; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18883, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 18883, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-23 14:47:53"; "file_name" = ""; message = "Does she like?"; "message_id" = 18884; "message_type" = 0; "prev_session_message_id" = 18883; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] datesent = "2026-01-23 14:47:53"; "file_name" = ""; message = "Does she like?"; "message_id" = 18884; "message_type" = 0; "prev_session_message_id" = 18883; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] datesent = "2026-01-23 14:47:53"; "file_name" = ""; message = "Does she like?"; "message_id" = 18884; "message_type" = 0; "prev_session_message_id" = 18883; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18884, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-23 14:48:11"; "file_name" = ""; message = "Or do you like to do with her?"; "message_id" = 18885; "message_type" = 0; "prev_session_message_id" = 18884; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-23 14:48:11"; "file_name" = ""; message = "Or do you like to do with her?"; "message_id" = 18885; "message_type" = 0; "prev_session_message_id" = 18884; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-23 14:48:11"; "file_name" = ""; message = "Or do you like to do with her?"; "message_id" = 18885; "message_type" = 0; "prev_session_message_id" = 18884; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18885] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 18886, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] datesent = "2026-01-23 14:49:51"; "file_name" = ""; message = "Can you watch it?"; "message_id" = 18888; "message_type" = 0; "prev_session_message_id" = 18887; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18888, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 14:49:51"; "file_name" = ""; message = "Can you watch it?"; "message_id" = 18888; "message_type" = 0; "prev_session_message_id" = 18887; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18888, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18888] datesent = "2026-01-23 14:50:45"; "file_name" = ""; message = "I guess I dont want to see it"; "message_id" = 18891; "message_type" = 0; "prev_session_message_id" = 18890; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18891, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18891, AnyHashable("message_data"): { datesent = "2026-01-23 14:50:45"; "file_name" = ""; message = "I guess I dont want to see it"; "message_id" = 18891; "message_type" = 0; "prev_session_message_id" = 18890; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] "content-available" = 1; }] alert = { body = ""; title = StreamCam; }; badge = 0; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18894] "content-available" = 1; }, AnyHashable("message_id"): 18895, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18895] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18899, AnyHashable("message_data"): { datesent = "2026-01-23 15:02:27"; "file_name" = ""; message = "Ha ha \Ud83e\Udd23"; "message_id" = 18899; "message_type" = 0; "prev_session_message_id" = 18898; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18899, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-23 15:02:27"; "file_name" = ""; message = "Ha ha \Ud83e\Udd23"; "message_id" = 18899; "message_type" = 0; "prev_session_message_id" = 18898; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }] datesent = "2026-01-23 15:02:47"; "file_name" = ""; message = "Make sense"; "message_id" = 18900; "message_type" = 0; "prev_session_message_id" = 18899; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18900] datesent = "2026-01-23 15:02:47"; "file_name" = ""; message = "Make sense"; "message_id" = 18900; "message_type" = 0; "prev_session_message_id" = 18899; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 18900] datesent = "2026-01-23 15:02:47"; "file_name" = ""; message = "Make sense"; "message_id" = 18900; "message_type" = 0; "prev_session_message_id" = 18899; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 15:02:49"; "file_name" = ""; message = "\Ud83e\Udd2a\Ud83e\Udd2a"; "message_id" = 18901; "message_type" = 0; "prev_session_message_id" = 18900; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-23 15:02:49"; "file_name" = ""; message = "\Ud83e\Udd2a\Ud83e\Udd2a"; "message_id" = 18901; "message_type" = 0; "prev_session_message_id" = 18900; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] datesent = "2026-01-23 15:02:49"; "file_name" = ""; message = "\Ud83e\Udd2a\Ud83e\Udd2a"; "message_id" = 18901; "message_type" = 0; "prev_session_message_id" = 18900; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18901] datesent = "2026-01-23 15:02:49"; "file_name" = ""; message = "\Ud83e\Udd2a\Ud83e\Udd2a"; "message_id" = 18901; "message_type" = 0; "prev_session_message_id" = 18900; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18901] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18901] "LocalWebSocketTask .<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask .<1>} "LocalWebSocketTask <20E4B1E2-2B79-4864-8F48-151078BDDC1B>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <20E4B1E2-2B79-4864-8F48-151078BDDC1B>.<1>} "LocalWebSocketTask <654965D2-C196-4240-990A-C232CC223F7A>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <654965D2-C196-4240-990A-C232CC223F7A>.<1>} "content-available" = 1; }, AnyHashable("message_id"): 18904, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] datesent = "2026-01-23 16:50:35"; "file_name" = ""; message = "Thank you babyy\U2665\Ufe0f"; "message_id" = 18905; "message_type" = 0; "prev_session_message_id" = 18904; "replied_message" = "Enjoy Melis !!"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18903; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18905, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-23 16:50:35"; "file_name" = ""; message = "Thank you babyy\U2665\Ufe0f"; "message_id" = 18905; "message_type" = 0; "prev_session_message_id" = 18904; "replied_message" = "Enjoy Melis !!"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18903; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18905, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18905, AnyHashable("message_data"): { datesent = "2026-01-23 16:50:35"; "file_name" = ""; message = "Thank you babyy\U2665\Ufe0f"; "message_id" = 18905; "message_type" = 0; "prev_session_message_id" = 18904; "replied_message" = "Enjoy Melis !!"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18903; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18907, AnyHashable("message_data"): { datesent = "2026-01-23 16:50:57"; "file_name" = ""; message = "Time to time, Im seeing you in my dreams"; "message_id" = 18907; "message_type" = 0; "prev_session_message_id" = 18906; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18907, AnyHashable("message_data"): { datesent = "2026-01-23 16:50:57"; "file_name" = ""; message = "Time to time, Im seeing you in my dreams"; "message_id" = 18907; "message_type" = 0; "prev_session_message_id" = 18906; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-23 16:50:57"; "file_name" = ""; message = "Time to time, Im seeing you in my dreams"; "message_id" = 18907; "message_type" = 0; "prev_session_message_id" = 18906; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18906, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18907, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-23 16:51:38"; "file_name" = ""; message = "And every time, Im feeling same way \Ud83e\Udee6\Ud83e\Udee6\Ud83e\Udee6"; "message_id" = 18909; "message_type" = 0; "prev_session_message_id" = 18908; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-23 16:51:38"; "file_name" = ""; message = "And every time, Im feeling same way \Ud83e\Udee6\Ud83e\Udee6\Ud83e\Udee6"; "message_id" = 18909; "message_type" = 0; "prev_session_message_id" = 18908; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] datesent = "2026-01-23 16:51:38"; "file_name" = ""; message = "And every time, Im feeling same way \Ud83e\Udee6\Ud83e\Udee6\Ud83e\Udee6"; "message_id" = 18909; "message_type" = 0; "prev_session_message_id" = 18908; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18909] "content-available" = 1; }, AnyHashable("message_id"): 18909, AnyHashable("operation_type"): 3] datesent = "2026-01-23 16:51:51"; "file_name" = ""; message = "Still with her baby\U2665\Ufe0f"; "message_id" = 18910; "message_type" = 0; "prev_session_message_id" = 18909; "replied_message" = "Still with her or leaving already ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18906; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18910, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-23 16:51:51"; "file_name" = ""; message = "Still with her baby\U2665\Ufe0f"; "message_id" = 18910; "message_type" = 0; "prev_session_message_id" = 18909; "replied_message" = "Still with her or leaving already ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18906; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 18910, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-23 16:51:51"; "file_name" = ""; message = "Still with her baby\U2665\Ufe0f"; "message_id" = 18910; "message_type" = 0; "prev_session_message_id" = 18909; "replied_message" = "Still with her or leaving already ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18906; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18910, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18910, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 18910] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-23 16:51:58"; "file_name" = ""; message = "More than sweet \Ud83e\Udee6\Ud83e\Udee6\Ud83e\Udee6"; "message_id" = 18911; "message_type" = 0; "prev_session_message_id" = 18910; "replied_message" = "Mmmm. Very sweet dreams then \Ud83d\Ude0b"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18908; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18911, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-23 16:51:58"; "file_name" = ""; message = "More than sweet \Ud83e\Udee6\Ud83e\Udee6\Ud83e\Udee6"; "message_id" = 18911; "message_type" = 0; "prev_session_message_id" = 18910; "replied_message" = "Mmmm. Very sweet dreams then \Ud83d\Ude0b"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18908; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 18911, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-23 16:51:58"; "file_name" = ""; message = "More than sweet \Ud83e\Udee6\Ud83e\Udee6\Ud83e\Udee6"; "message_id" = 18911; "message_type" = 0; "prev_session_message_id" = 18910; "replied_message" = "Mmmm. Very sweet dreams then \Ud83d\Ude0b"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 18908; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18911] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("operation_type"): 1] -- Response Headers -- Server: Apache/2.4.65 (Debian) Date: Fri, 23 Jan 2026 17:23:25 GMT Content-Length: 67 Keep-Alive: timeout=5, max=97 Content-Type: application/json; charset=utf-8 Connection: Keep-Alive -- Body -- {"ok":true,"event_type":1,"message_id":18912,"session_id":"ILUIWU"} "content-available" = 1; }, AnyHashable("message_id"): 18917, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18920, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18921] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18924] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18923] "content-available" = 1; }, AnyHashable("message_id"): 18922, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18958,"event_type":2} "LocalDataTask .<342>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/chat/chat_get_messages.php?viewer=1&session_id=ILUIWU&mark_read=0&viewer_id=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/chat/chat_get_messages.php?viewer=1&session_id=ILUIWU&mark_read=0&viewer_id=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, _kCFStreamErrorDomainKey=4} - keeping existing messages[08:18:09] [LOG] Pruned 6020 entries older than 3 hours "content-available" = 1; }] "content-available" = 1; }] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18962] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18965, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 18964] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":18973,"event_type":2}[12:29:55] [LOG] Pruned 1968 entries older than 3 hours "content-available" = 1; }, AnyHashable("message_id"): 18977] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 18976, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3][16:49:44] [LOG] Pruned 904 entries older than 3 hours "content-available" = 1; }, AnyHashable("message_id"): 18982, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-24 13:23:37"; "file_name" = ""; message = "My looooove\U2665\Ufe0f\U2665\Ufe0f"; "message_id" = 18982; "message_type" = 0; "prev_session_message_id" = 18981; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("message_id"): 18982, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 18991, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18988] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 18989] datesent = "2026-01-24 20:37:30"; "file_name" = ""; message = "How is your night going babyyy"; "message_id" = 18997; "message_type" = 0; "prev_session_message_id" = 18996; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 19013, AnyHashable("message_data"): { datesent = "2026-01-24 22:05:51"; "file_name" = ""; message = "Babyyyyyyyy\Ud83e\Udd29\Ud83e\Udd29\Ud83e\Udd29"; "message_id" = 19013; "message_type" = 0; "prev_session_message_id" = 19012; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("message_id"): 19013] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19014] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19015, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-24 22:07:06"; "file_name" = ""; message = "I am actually baby"; "message_id" = 19018; "message_type" = 0; "prev_session_message_id" = 19017; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("message_id"): 19018, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] datesent = "2026-01-24 22:07:46"; "file_name" = ""; message = "Nooo\Ud83e\Udd72 my neck is still not good"; "message_id" = 19020; "message_type" = 0; "prev_session_message_id" = 19019; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 19020, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { "content-available" = 1; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-24 22:07:58"; "file_name" = ""; message = "I\U2019ll go the doctor on Monday"; "message_id" = 19021; "message_type" = 0; "prev_session_message_id" = 19020; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { "content-available" = 1; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 19023] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 19025, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-24 22:08:35"; "file_name" = ""; message = "I dont want to do anything wrong, doctor first"; "message_id" = 19025; "message_type" = 0; "prev_session_message_id" = 19024; "replied_message" = "Will you ask for a massage ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19022; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 19026, AnyHashable("message_data"): { datesent = "2026-01-24 22:08:43"; "file_name" = ""; message = "Maybe.."; "message_id" = 19026; "message_type" = 0; "prev_session_message_id" = 19025; "replied_message" = "Best thing to do. Maybe osteopath can help you"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19024; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("message_id"): 19026] "content-available" = 1; }, AnyHashable("message_id"): 19027, AnyHashable("message_data"): { datesent = "2026-01-24 22:08:55"; "file_name" = ""; message = "How are you my love"; "message_id" = 19027; "message_type" = 0; "prev_session_message_id" = 19026; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("message_id"): 19027, AnyHashable("message_data"): { datesent = "2026-01-24 22:08:55"; "file_name" = ""; message = "How are you my love"; "message_id" = 19027; "message_type" = 0; "prev_session_message_id" = 19026; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19029, AnyHashable("message_data"): { datesent = "2026-01-24 22:09:06"; "file_name" = ""; message = "Everything is good?"; "message_id" = 19029; "message_type" = 0; "prev_session_message_id" = 19028; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19030] "content-available" = 1; }, AnyHashable("message_id"): 19029] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19031] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 19033, AnyHashable("message_data"): { datesent = "2026-01-24 22:09:44"; "file_name" = ""; message = "Happy for you my love"; "message_id" = 19033; "message_type" = 0; "prev_session_message_id" = 19032; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("message_id"): 19033, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] datesent = "2026-01-24 22:10:03"; "file_name" = ""; message = "Tomorrow \U26f7\Ufe0f again?"; "message_id" = 19034; "message_type" = 0; "prev_session_message_id" = 19033; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19034, AnyHashable("aps"): { "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 19034, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 19035, AnyHashable("operation_type"): 3] "LocalDataTask .<166>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, _kCFStreamErrorDomainKey=4} "content-available" = 1; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-24 22:12:17"; "file_name" = ""; message = "You tell me\Ud83e\Udd13\Ud83e\Udd13\Ud83e\Udd2a"; "message_id" = 19038; "message_type" = 0; "prev_session_message_id" = 19037; "replied_message" = "Spoiled me, am I not \Ud83d\Ude01 ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19036; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19038] "content-available" = 1; }, AnyHashable("message_id"): 19038, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 19039, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19037] "content-available" = 1; }, AnyHashable("message_id"): 19040, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-24 22:12:46"; "file_name" = ""; message = "How many hours to your home ?"; "message_id" = 19040; "message_type" = 0; "prev_session_message_id" = 19039; "replied_message" = "I don't think so. We will leave back to home just after lunch time I think so easy peazy in the morning normally"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19035; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19041] "LocalDataTask <2115A431-8814-4310-B92A-33E915FC1898>.<192>" ), NSLocalizedDescription=The network connection was lost., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, _kCFStreamErrorDomainKey=1} "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 19044, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-24 22:13:28"; "file_name" = ""; message = "I\U2019ll be early tomorrow, we are going to breakfast with gorkem, emrah and others"; "message_id" = 19044; "message_type" = 0; "prev_session_message_id" = 19043; "replied_message" = "And for once a late wake up hopefully also"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19039; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 19043, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_data"): { datesent = "2026-01-24 22:13:51"; "file_name" = ""; message = "Wooow closer than expected"; "message_id" = 19045; "message_type" = 0; "prev_session_message_id" = 19044; "replied_message" = "It's roughly 1h45 drive time so not too far"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19042; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 19045] datesent = "2026-01-24 22:13:56"; "file_name" = ""; message = "Lucky youuuu"; "message_id" = 19047; "message_type" = 0; "prev_session_message_id" = 19046; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("message_id"): 19047] "content-available" = 1; }, AnyHashable("message_id"): 19045, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 19047] datesent = "2026-01-24 22:14:50"; "file_name" = ""; message = "Yes Im actually. Im a social butterfly \Ud83e\Udd2a"; "message_id" = 19049; "message_type" = 0; "prev_session_message_id" = 19048; "replied_message" = "Oh. Business morning for my baby \Ud83d\Ude0a You like such outings ?"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19046; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("message_id"): 19049] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19049] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_data"): { datesent = "2026-01-24 22:15:37"; "file_name" = ""; message = "You can\U2019t imagine \Ud83d\Ude0f\Ud83d\Ude0f\Ud83d\Ude09"; "message_id" = 19051; "message_type" = 0; "prev_session_message_id" = 19050; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19051] "content-available" = 1; }] "LocalDataTask <07F0EA4B-4990-4764-AF66-8F6223E8FCFA>.<273>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, _kCFStreamErrorDomainKey=4} "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19053] datesent = "2026-01-24 22:21:27"; "file_name" = ""; message = "Yes true, not a good thing but its not including negative feelings. I mean yes Im jealous of you but in a positive way."; "message_id" = 19056; "message_type" = 0; "prev_session_message_id" = 19055; "replied_message" = "I was thinking about it today and really value the fact you're jealous of my wife. I know it's usually not good to be jealous but it shows you are really living that sense of belonging. I belong to you."; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19052; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19056, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-24 22:21:27"; "file_name" = ""; message = "Yes true, not a good thing but its not including negative feelings. I mean yes Im jealous of you but in a positive way."; "message_id" = 19056; "message_type" = 0; "prev_session_message_id" = 19055; "replied_message" = "I was thinking about it today and really value the fact you're jealous of my wife. I know it's usually not good to be jealous but it shows you are really living that sense of belonging. I belong to you."; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19052; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("message_id"): 19056, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }] datesent = "2026-01-24 22:22:07"; "file_name" = ""; message = "Ha ha"; "message_id" = 19060; "message_type" = 0; "prev_session_message_id" = 19059; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] datesent = "2026-01-24 22:22:07"; "file_name" = ""; message = "Ha ha"; "message_id" = 19060; "message_type" = 0; "prev_session_message_id" = 19059; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-24 22:22:07"; "file_name" = ""; message = "Ha ha"; "message_id" = 19060; "message_type" = 0; "prev_session_message_id" = 19059; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 19060] "content-available" = 1; }] "content-available" = 1; }] datesent = "2026-01-24 22:22:44"; "file_name" = ""; message = "Trueee!"; "message_id" = 19061; "message_type" = 0; "prev_session_message_id" = 19060; "replied_message" = "Every element is an opportunity for us baby"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19059; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19061, AnyHashable("operation_type"): 0] datesent = "2026-01-24 22:22:44"; "file_name" = ""; message = "Trueee!"; "message_id" = 19061; "message_type" = 0; "prev_session_message_id" = 19060; "replied_message" = "Every element is an opportunity for us baby"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19059; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19061, AnyHashable("operation_type"): 0] datesent = "2026-01-24 22:22:44"; "file_name" = ""; message = "Trueee!"; "message_id" = 19061; "message_type" = 0; "prev_session_message_id" = 19060; "replied_message" = "Every element is an opportunity for us baby"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19059; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19061, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 19062] "LocalWebSocketTask <5689C622-E2B1-4A2D-BAB4-5885B3C95F94>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <5689C622-E2B1-4A2D-BAB4-5885B3C95F94>.<1>} alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-24 22:23:50"; "file_name" = ""; message = "Nope\Ud83d\Ude0f"; "message_id" = 19063; "message_type" = 0; "prev_session_message_id" = 19062; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 19063, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19063, AnyHashable("message_data"): { datesent = "2026-01-24 22:23:50"; "file_name" = ""; message = "Nope\Ud83d\Ude0f"; "message_id" = 19063; "message_type" = 0; "prev_session_message_id" = 19062; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19064, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19065] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19065, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 19066] "LocalWebSocketTask .<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask .<1>} datesent = "2026-01-24 22:25:46"; "file_name" = ""; message = "You have to convince me for 1-1, I mean when I want to come then you may come"; "message_id" = 19067; "message_type" = 0; "prev_session_message_id" = 19066; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] datesent = "2026-01-24 22:25:46"; "file_name" = ""; message = "You have to convince me for 1-1, I mean when I want to come then you may come"; "message_id" = 19067; "message_type" = 0; "prev_session_message_id" = 19066; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19067, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-24 22:25:46"; "file_name" = ""; message = "You have to convince me for 1-1, I mean when I want to come then you may come"; "message_id" = 19067; "message_type" = 0; "prev_session_message_id" = 19066; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("operation_type"): 3] datesent = "2026-01-24 22:26:14"; "file_name" = ""; message = "Which means you have to turn me on\Ud83e\Udd2d"; "message_id" = 19068; "message_type" = 0; "prev_session_message_id" = 19067; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-24 22:26:14"; "file_name" = ""; message = "Which means you have to turn me on\Ud83e\Udd2d"; "message_id" = 19068; "message_type" = 0; "prev_session_message_id" = 19067; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-24 22:26:14"; "file_name" = ""; message = "Which means you have to turn me on\Ud83e\Udd2d"; "message_id" = 19068; "message_type" = 0; "prev_session_message_id" = 19067; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 19068, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 19069, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }] datesent = "2026-01-24 22:26:48"; "file_name" = ""; message = Yeap; "message_id" = 19071; "message_type" = 0; "prev_session_message_id" = 19070; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-24 22:26:48"; "file_name" = ""; message = Yeap; "message_id" = 19071; "message_type" = 0; "prev_session_message_id" = 19070; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19071, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-24 22:26:48"; "file_name" = ""; message = Yeap; "message_id" = 19071; "message_type" = 0; "prev_session_message_id" = 19070; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }] datesent = "2026-01-24 22:27:22"; "file_name" = ""; message = Correct; "message_id" = 19074; "message_type" = 0; "prev_session_message_id" = 19073; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-24 22:27:22"; "file_name" = ""; message = Correct; "message_id" = 19074; "message_type" = 0; "prev_session_message_id" = 19073; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19074, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-24 22:27:22"; "file_name" = ""; message = Correct; "message_id" = 19074; "message_type" = 0; "prev_session_message_id" = 19073; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("message_id"): 19074] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19074] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-24 22:30:21"; "file_name" = ""; message = "Oh babyyy come on! Of course turned on! But I wasn\U2019t alone so I didn\U2019t have a chance to enjoy with them \Ud83e\Udd24\Ud83e\Udd24\Ud83e\Udd24"; "message_id" = 19077; "message_type" = 0; "prev_session_message_id" = 19076; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19077] datesent = "2026-01-24 22:30:21"; "file_name" = ""; message = "Oh babyyy come on! Of course turned on! But I wasn\U2019t alone so I didn\U2019t have a chance to enjoy with them \Ud83e\Udd24\Ud83e\Udd24\Ud83e\Udd24"; "message_id" = 19077; "message_type" = 0; "prev_session_message_id" = 19076; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19077, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("message_id"): 19077, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 19078] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-24 22:31:38"; "file_name" = ""; message = "Yes baby \U2665\Ufe0f"; "message_id" = 19079; "message_type" = 0; "prev_session_message_id" = 19078; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19079, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-24 22:31:38"; "file_name" = ""; message = "Yes baby \U2665\Ufe0f"; "message_id" = 19079; "message_type" = 0; "prev_session_message_id" = 19078; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19079, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-24 22:31:38"; "file_name" = ""; message = "Yes baby \U2665\Ufe0f"; "message_id" = 19079; "message_type" = 0; "prev_session_message_id" = 19078; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19079, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-24 22:31:38"; "file_name" = ""; message = "Yes baby \U2665\Ufe0f"; "message_id" = 19079; "message_type" = 0; "prev_session_message_id" = 19078; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] "content-available" = 1; }] datesent = "2026-01-24 22:33:32"; "file_name" = ""; message = "In bed, starting slowly"; "message_id" = 19084; "message_type" = 0; "prev_session_message_id" = 19083; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19084, AnyHashable("message_data"): { datesent = "2026-01-24 22:33:32"; "file_name" = ""; message = "In bed, starting slowly"; "message_id" = 19084; "message_type" = 0; "prev_session_message_id" = 19083; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19084] "content-available" = 1; }] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 1] -- Response Headers -- Date: Sat, 24 Jan 2026 22:35:56 GMT Content-Type: application/json; charset=utf-8 Keep-Alive: timeout=5, max=100 Server: Apache/2.4.65 (Debian) Content-Length: 67 Connection: Keep-Alive -- Body -- {"ok":true,"event_type":1,"message_id":19083,"session_id":"ILUIWU"} "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-24 22:36:38"; "file_name" = ""; message = "I want him!"; "message_id" = 19088; "message_type" = 0; "prev_session_message_id" = 19087; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-24 22:36:38"; "file_name" = ""; message = "I want him!"; "message_id" = 19088; "message_type" = 0; "prev_session_message_id" = 19087; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19088, AnyHashable("message_data"): { datesent = "2026-01-24 22:36:38"; "file_name" = ""; message = "I want him!"; "message_id" = 19088; "message_type" = 0; "prev_session_message_id" = 19087; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-24 22:36:44"; "file_name" = ""; message = "In me!"; "message_id" = 19089; "message_type" = 0; "prev_session_message_id" = 19088; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-24 22:36:44"; "file_name" = ""; message = "In me!"; "message_id" = 19089; "message_type" = 0; "prev_session_message_id" = 19088; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-24 22:36:44"; "file_name" = ""; message = "In me!"; "message_id" = 19089; "message_type" = 0; "prev_session_message_id" = 19088; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19089] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19090] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":19090,"event_type":2} "content-available" = 1; }, AnyHashable("message_id"): 19090, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-24 22:37:11"; "file_name" = ""; message = "Yes baby, I can"; "message_id" = 19091; "message_type" = 0; "prev_session_message_id" = 19090; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-24 22:37:11"; "file_name" = ""; message = "Yes baby, I can"; "message_id" = 19091; "message_type" = 0; "prev_session_message_id" = 19090; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] datesent = "2026-01-24 22:37:11"; "file_name" = ""; message = "Yes baby, I can"; "message_id" = 19091; "message_type" = 0; "prev_session_message_id" = 19090; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19091] "content-available" = 1; }, AnyHashable("message_id"): 19091, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-24 22:37:33"; "file_name" = ""; message = "From your face, from his shape, I can see\Ud83d\Ude0f\Ud83e\Udd24"; "message_id" = 19093; "message_type" = 0; "prev_session_message_id" = 19092; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19093] datesent = "2026-01-24 22:37:33"; "file_name" = ""; message = "From your face, from his shape, I can see\Ud83d\Ude0f\Ud83e\Udd24"; "message_id" = 19093; "message_type" = 0; "prev_session_message_id" = 19092; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19093] datesent = "2026-01-24 22:37:33"; "file_name" = ""; message = "From your face, from his shape, I can see\Ud83d\Ude0f\Ud83e\Udd24"; "message_id" = 19093; "message_type" = 0; "prev_session_message_id" = 19092; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19093, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19094, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-24 22:41:06"; "file_name" = ""; message = Babyy; "message_id" = 19095; "message_type" = 0; "prev_session_message_id" = 19094; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19095] datesent = "2026-01-24 22:41:06"; "file_name" = ""; message = Babyy; "message_id" = 19095; "message_type" = 0; "prev_session_message_id" = 19094; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19095] datesent = "2026-01-24 22:41:06"; "file_name" = ""; message = Babyy; "message_id" = 19095; "message_type" = 0; "prev_session_message_id" = 19094; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19095] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-24 22:41:18"; "file_name" = ""; message = "I need you"; "message_id" = 19096; "message_type" = 0; "prev_session_message_id" = 19095; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-24 22:41:18"; "file_name" = ""; message = "I need you"; "message_id" = 19096; "message_type" = 0; "prev_session_message_id" = 19095; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-24 22:41:18"; "file_name" = ""; message = "I need you"; "message_id" = 19096; "message_type" = 0; "prev_session_message_id" = 19095; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19096] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19096] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19097] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":19098,"event_type":2} "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19098, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-24 22:42:03"; "file_name" = ""; message = "Sooooo much!!!"; "message_id" = 19099; "message_type" = 0; "prev_session_message_id" = 19098; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19099, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-24 22:42:03"; "file_name" = ""; message = "Sooooo much!!!"; "message_id" = 19099; "message_type" = 0; "prev_session_message_id" = 19098; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19099, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-24 22:42:03"; "file_name" = ""; message = "Sooooo much!!!"; "message_id" = 19099; "message_type" = 0; "prev_session_message_id" = 19098; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19099, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-24 22:42:03"; "file_name" = ""; message = "Sooooo much!!!"; "message_id" = 19099; "message_type" = 0; "prev_session_message_id" = 19098; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":19100,"event_type":2} "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19100] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-24 22:44:01"; "file_name" = ""; message = "Yes but, probably not so quickly"; "message_id" = 19101; "message_type" = 0; "prev_session_message_id" = 19100; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 19101, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-24 22:44:01"; "file_name" = ""; message = "Yes but, probably not so quickly"; "message_id" = 19101; "message_type" = 0; "prev_session_message_id" = 19100; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19101] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-24 22:46:28"; "file_name" = ""; message = "He will come in 15 mins I guess, almost 2am here"; "message_id" = 19104; "message_type" = 0; "prev_session_message_id" = 19103; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 19104] alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-24 22:46:28"; "file_name" = ""; message = "He will come in 15 mins I guess, almost 2am here"; "message_id" = 19104; "message_type" = 0; "prev_session_message_id" = 19103; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 19104] datesent = "2026-01-24 22:46:28"; "file_name" = ""; message = "He will come in 15 mins I guess, almost 2am here"; "message_id" = 19104; "message_type" = 0; "prev_session_message_id" = 19103; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 0; "content-available" = 1; sound = default; }] "content-available" = 1; }] "content-available" = 1; }] datesent = "2026-01-24 22:47:08"; "file_name" = ""; message = "I want to keep myself at 5 \Ud83e\Udd2d"; "message_id" = 19105; "message_type" = 0; "prev_session_message_id" = 19104; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] datesent = "2026-01-24 22:47:08"; "file_name" = ""; message = "I want to keep myself at 5 \Ud83e\Udd2d"; "message_id" = 19105; "message_type" = 0; "prev_session_message_id" = 19104; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-24 22:47:08"; "file_name" = ""; message = "I want to keep myself at 5 \Ud83e\Udd2d"; "message_id" = 19105; "message_type" = 0; "prev_session_message_id" = 19104; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19105] "content-available" = 1; }, AnyHashable("message_id"): 19106] "content-available" = 1; }, AnyHashable("message_id"): 19105, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-24 22:47:49"; "file_name" = ""; message = "What about you? Are you gonna sleep or read a book?"; "message_id" = 19108; "message_type" = 0; "prev_session_message_id" = 19107; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19108, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-24 22:47:49"; "file_name" = ""; message = "What about you? Are you gonna sleep or read a book?"; "message_id" = 19108; "message_type" = 0; "prev_session_message_id" = 19107; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 19109, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-24 22:48:37"; "file_name" = ""; message = "\Ud83e\Udee6"; "message_id" = 19110; "message_type" = 0; "prev_session_message_id" = 19109; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19110] datesent = "2026-01-24 22:48:37"; "file_name" = ""; message = "\Ud83e\Udee6"; "message_id" = 19110; "message_type" = 0; "prev_session_message_id" = 19109; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19110] datesent = "2026-01-24 22:48:37"; "file_name" = ""; message = "\Ud83e\Udee6"; "message_id" = 19110; "message_type" = 0; "prev_session_message_id" = 19109; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19110, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19112, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-24 22:48:54"; "file_name" = ""; message = "I want to see you in my dreams again! Come plsss"; "message_id" = 19112; "message_type" = 0; "prev_session_message_id" = 19111; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19112, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-24 22:48:54"; "file_name" = ""; message = "I want to see you in my dreams again! Come plsss"; "message_id" = 19112; "message_type" = 0; "prev_session_message_id" = 19111; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-24 22:48:54"; "file_name" = ""; message = "I want to see you in my dreams again! Come plsss"; "message_id" = 19112; "message_type" = 0; "prev_session_message_id" = 19111; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19112] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19112, AnyHashable("message_data"): { datesent = "2026-01-24 22:48:54"; "file_name" = ""; message = "I want to see you in my dreams again! Come plsss"; "message_id" = 19112; "message_type" = 0; "prev_session_message_id" = 19111; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19112] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19115, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-24 22:49:39"; "file_name" = ""; message = "If you are not so tired, then one more 1-0 would be great \Ud83d\Ude09"; "message_id" = 19115; "message_type" = 0; "prev_session_message_id" = 19114; "replied_message" = "(assuming you don't want to be more cruel with me \Ud83d\Ude09)"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19111; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19115, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-24 22:49:39"; "file_name" = ""; message = "If you are not so tired, then one more 1-0 would be great \Ud83d\Ude09"; "message_id" = 19115; "message_type" = 0; "prev_session_message_id" = 19114; "replied_message" = "(assuming you don't want to be more cruel with me \Ud83d\Ude09)"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19111; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] datesent = "2026-01-24 22:49:39"; "file_name" = ""; message = "If you are not so tired, then one more 1-0 would be great \Ud83d\Ude09"; "message_id" = 19115; "message_type" = 0; "prev_session_message_id" = 19114; "replied_message" = "(assuming you don't want to be more cruel with me \Ud83d\Ude09)"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19111; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }] datesent = "2026-01-24 22:49:52"; "file_name" = ""; message = "Ha ha \Ud83e\Udd2a"; "message_id" = 19116; "message_type" = 0; "prev_session_message_id" = 19115; "replied_message" = "I know. In your dreams \Ud83d\Ude01"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19114; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] datesent = "2026-01-24 22:49:52"; "file_name" = ""; message = "Ha ha \Ud83e\Udd2a"; "message_id" = 19116; "message_type" = 0; "prev_session_message_id" = 19115; "replied_message" = "I know. In your dreams \Ud83d\Ude01"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19114; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-24 22:49:52"; "file_name" = ""; message = "Ha ha \Ud83e\Udd2a"; "message_id" = 19116; "message_type" = 0; "prev_session_message_id" = 19115; "replied_message" = "I know. In your dreams \Ud83d\Ude01"; "replied_sender_id" = "3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF"; "replied_sender_name" = Laurent; "reply_to_id" = 19114; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19116] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 19116, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19118, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-24 22:50:01"; "file_name" = ""; message = "\U2665\Ufe0f\Ud83e\Udee6\Ud83e\Udee6"; "message_id" = 19118; "message_type" = 0; "prev_session_message_id" = 19117; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19118, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-24 22:50:01"; "file_name" = ""; message = "\U2665\Ufe0f\Ud83e\Udee6\Ud83e\Udee6"; "message_id" = 19118; "message_type" = 0; "prev_session_message_id" = 19117; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] datesent = "2026-01-24 22:50:01"; "file_name" = ""; message = "\U2665\Ufe0f\Ud83e\Udee6\Ud83e\Udee6"; "message_id" = 19118; "message_type" = 0; "prev_session_message_id" = 19117; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19118, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 19118, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] datesent = "2026-01-24 22:50:09"; "file_name" = ""; message = "Then enjoy my love\U2665\Ufe0f"; "message_id" = 19119; "message_type" = 0; "prev_session_message_id" = 19118; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 19119, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] datesent = "2026-01-24 22:50:09"; "file_name" = ""; message = "Then enjoy my love\U2665\Ufe0f"; "message_id" = 19119; "message_type" = 0; "prev_session_message_id" = 19118; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 19119, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19119, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-24 22:50:09"; "file_name" = ""; message = "Then enjoy my love\U2665\Ufe0f"; "message_id" = 19119; "message_type" = 0; "prev_session_message_id" = 19118; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19120, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19121, AnyHashable("message_data"): { datesent = "2026-01-24 22:50:19"; "file_name" = ""; message = ILU; "message_id" = 19121; "message_type" = 0; "prev_session_message_id" = 19120; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19121, AnyHashable("message_data"): { datesent = "2026-01-24 22:50:19"; "file_name" = ""; message = ILU; "message_id" = 19121; "message_type" = 0; "prev_session_message_id" = 19120; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19121, AnyHashable("message_data"): { datesent = "2026-01-24 22:50:19"; "file_name" = ""; message = ILU; "message_id" = 19121; "message_type" = 0; "prev_session_message_id" = 19120; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19121, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-24 22:50:39"; "file_name" = ""; message = "Good night \Ud83e\Udee6"; "message_id" = 19124; "message_type" = 0; "prev_session_message_id" = 19123; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19124, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-24 22:50:39"; "file_name" = ""; message = "Good night \Ud83e\Udee6"; "message_id" = 19124; "message_type" = 0; "prev_session_message_id" = 19123; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19124, AnyHashable("session_id"): ILUIWU] datesent = "2026-01-24 22:50:39"; "file_name" = ""; message = "Good night \Ud83e\Udee6"; "message_id" = 19124; "message_type" = 0; "prev_session_message_id" = 19123; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] "content-available" = 1; }, AnyHashable("message_id"): 19124, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19126, AnyHashable("message_data"): { datesent = "2026-01-24 22:50:55"; "file_name" = ""; message = "Ha ha\Ud83e\Udd2d\Ud83e\Udd2d\Ud83e\Udd2d"; "message_id" = 19126; "message_type" = 0; "prev_session_message_id" = 19125; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19126, AnyHashable("message_data"): { datesent = "2026-01-24 22:50:55"; "file_name" = ""; message = "Ha ha\Ud83e\Udd2d\Ud83e\Udd2d\Ud83e\Udd2d"; "message_id" = 19126; "message_type" = 0; "prev_session_message_id" = 19125; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-24 22:50:55"; "file_name" = ""; message = "Ha ha\Ud83e\Udd2d\Ud83e\Udd2d\Ud83e\Udd2d"; "message_id" = 19126; "message_type" = 0; "prev_session_message_id" = 19125; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 19126] "content-available" = 1; }, AnyHashable("message_id"): 19126, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] "LocalDataTask <1688884E-EB1F-4FBD-A2CE-6855E0AC372A>.<26>" ), NSLocalizedDescription=The network connection was lost., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, _kCFStreamErrorDomainKey=1} -- Response Headers -- Connection: Keep-Alive Server: Apache/2.4.65 (Debian) Keep-Alive: timeout=5, max=100 Date: Sat, 24 Jan 2026 23:02:14 GMT Content-Type: application/json; charset=utf-8 Content-Length: 67 -- Body -- {"ok":true,"event_type":1,"message_id":19132,"session_id":"ILUIWU"} alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19083, AnyHashable("session_id"): ILUIWU][07:32:27] [LOG] Pruned 11413 entries older than 3 hours "content-available" = 1; }, AnyHashable("message_id"): 19138, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19139] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 19140, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19141] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19142] "content-available" = 1; }, AnyHashable("message_id"): 19149] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19148, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 19147] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19146] "LocalWebSocketTask .<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask .<1>, NSLocalizedDescription=The network connection was lost.} "content-available" = 1; }, AnyHashable("message_data"): { datesent = "2026-01-25 13:50:43"; "file_name" = ""; message = "Back home \Ud83d\Ude43"; "message_id" = 19152; "message_type" = 0; "prev_session_message_id" = 19151; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 19152, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 0] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19152, AnyHashable("session_id"): ILUIWU] "LocalDataTask <184AE323-0BBE-4EDF-BC99-2D9305C1ACB3>.<8>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/chat/chat_get_messages.php?viewer=1&session_id=ILUIWU&mark_read=0&viewer_id=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF&since_id=19158, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/chat/chat_get_messages.php?viewer=1&session_id=ILUIWU&mark_read=0&viewer_id=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF&since_id=19158, _kCFStreamErrorDomainKey=4} "LocalDataTask .<22>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/chat/receive_message.php, _kCFStreamErrorDomainKey=4} "LocalWebSocketTask <8B788495-17C7-46A7-BD11-BC79FF58AA05>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <8B788495-17C7-46A7-BD11-BC79FF58AA05>.<1>, NSLocalizedDescription=cancelled} "LocalDataTask <0808DC6E-5F05-4DB1-949A-D9F163563FD0>.<1>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/chat/register_device.php, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/chat/register_device.php, _kCFStreamErrorDomainKey=4} "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19157, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] "LocalWebSocketTask <6293631B-03F8-4278-A41D-FBE89FCEB36D>.<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <6293631B-03F8-4278-A41D-FBE89FCEB36D>.<1>} "LocalWebSocketTask .<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask .<1>} "content-available" = 1; }] "content-available" = 1; }, AnyHashable("message_id"): 19166, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] "content-available" = 1; }, AnyHashable("message_id"): 19165, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("message_id"): 19172] "content-available" = 1; }, AnyHashable("message_id"): 19171, AnyHashable("operation_type"): 3] "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19170] "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] ── Body ── {"ok":true,"message":"Message updated","session_id":"ILUIWU","message_id":19174,"event_type":2}[06:55:03] [LOG] Pruned 940 entries older than 3 hours [06:55:03] [FONT] Roboto fonts loaded successfully: Roboto-Regular [06:55:03] [FONT] ChatFont.regular(18) returns: Roboto-Regular, family: Roboto [06:55:03] [GIPHY] SDK not available - using REST API fallback [06:55:03] [BACKGROUND] Background fetch enabled [06:55:03] [AUTH] Starting PIN authentication [06:55:03] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU [06:55:03] [CLIENT_SIG] Connecting to session ILUIWU as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [06:55:03] [CLEANUP] No old timer messages to delete [06:55:03] [PUSH] APNs token: 6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c [06:55:03] [SECURITY] sceneDidBecomeActive - isAuthenticated=false, didEnterBackground=false [06:55:03] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow [06:55:03] [PRELOAD] ⚡ Starting message pre-load during authentication (since_id=19174)... [06:55:03] [CLIENT_SIG] WebSocket opened [06:55:03] [CLIENT_SIG] HELLO sent as client for session ILUIWU [06:55:03] [CLIENT_SIG] Connected! clientId=xaJXbiql6LbpohT7 [06:55:03] [CLIENT_SIG] Received 1 clients for session 'ILUIWU' (my session: 'ILUIWU') [06:55:03] [CLIENT_SIG] - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [06:55:03] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":1,"removed_from_other_channels":0} [06:55:03] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [06:55:03] [USER] ✅ User registered successfully [06:55:03] [PUSH] User registration after token update: success [06:55:03] [PRELOAD] Fetched 2 messages [06:55:03] [PRELOAD] ✅ Saved 2 messages to local DB [06:55:04] [PRELOAD] ⚡ Cached 2 messages for instant display (preserved 0 from push) [06:55:05] [PUSH] Silent push received [06:55:05] [PUSH_EMBED] 📩 Received embedded message: id=19176, type=0, sender=Esra [06:55:05] [PUSH_EMBED] ✅ Saved message 19176 to local DB (sync) [06:55:05] [PUSH_EMBED] Created new cache with embedded message 19176 [06:55:05] [PUSH_EMBED] Fetching evolution data for message 19176 in background [06:55:05] [PUSH_EMBED] ✅ Fully processed message 19176 [06:55:05] [PUSH] Embedded message handled instantly from silent push [06:55:05] [PUSH_EMBED] Got evolution data for message 19176, saving to local DB [06:55:05] [PUSH_EMBED] Saved evolution data for message 19176 [06:55:09] [PIN_AUTH] Correct PIN [06:55:09] [SECURITY] Restored real session: ILUIWU [06:55:09] [SECURITY] Restored real session: ILUIWU [06:55:09] [SECURITY] Saved real session: ILUIWU [06:55:09] [SCENE] Launched directly to chat view with sessionId: ILUIWU [06:55:09] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone) [06:55:09] Documents Directory: /var/mobile/Containers/Data/Application/75035B73-3F30-4A91-A570-8F3EEDE21803/Documents [06:55:09] [THEME] Applying current theme [06:55:09] [CHAT] Applied day theme (mode: day) [06:55:09] [SECURITY] Saved real session: ILUIWU [06:55:09] [CLIENT_SIG] Setting up client signaling for session: ILUIWU [06:55:09] [CLIENT_SIG] Already connected/connecting to session ILUIWU [06:55:09] [NETWORK] Network monitor started [06:55:09] [NETWORK] Status changed: connected [06:55:09] [UPLOAD_QUEUE] Found 0 pending uploads to resume [06:55:09] Did transition [06:55:09] [MODE] 🔍 updateModeUI called - currentTabIndex=0, sessionId=ILUIWU [06:55:09] [VIEWER] Screen lock enabled - normal idle behavior [06:55:09] [QUERY] 🔍 Creating query connection for iOS slave: iosILUIWU [06:55:09] [VCC] ========== VideoConnectionClass INIT ========== [06:55:09] [VCC] Session: iosILUIWU, ViewIdx: 0, AgentId: nil [06:55:09] [DATA AUDIO] ========== setupWebRTC() START ========== [06:55:09] [DATA AUDIO] Using data channel for audio - bypassing WebRTC audio device [06:55:09] [DATA AUDIO] Creating encoder/decoder factories... [06:55:09] [CODEC] Viewer - Available video codecs: H264, H264, VP8, VP9, AV1 [06:55:09] [CODEC] Viewer selected encoder: AV1 (best quality) [06:55:09] [DATA AUDIO] Creating RTCPeerConnectionFactory... [06:55:09] [DATA AUDIO] ✅ Factory created [06:55:09] [DATA AUDIO] RTCAudioSession locked [06:55:09] [DATA AUDIO] Set useManualAudio=true, isAudioEnabled=false [06:55:09] [DATA AUDIO] RTCAudioSession unlocked [06:55:09] [DATA AUDIO] Skipping AVAudioSession config - handled by DataChannelAudioPlayer [06:55:09] [VCC] Initial ICE servers: ["stun:stun.l.google.com:19302", "turn:crivello.dyndns.org:3478?transport=udp", "turn:crivello.dyndns.org:3478?transport=tcp", "turns:crivello.dyndns.org:5349?transport=tcp"] [06:55:09] [WS] Creating new WebSocket - isQueryOnly=false, connectionStr=iosILUIWU [06:55:09] [WS] Opening session at ws://crivello.dyndns.org:8081/ [06:55:09] [QUERY] ✅ tempQueryConnection created for iosILUIWU [06:55:09] [VIEWER_INIT] Already have 50 messages - just filtering for tab [06:55:09] [EVENT_POLL] Event polling disabled - using WebSocket events instead [06:55:09] [ORIENTATION] Updated pagingScrollView height to 247.5 for width 440.0 [06:55:09] Did transition [06:55:09] [TABLEVIEW] cellForRowAt index 0 out of bounds (count=0) [06:55:09] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [06:55:09] [CHUNK] Merged 971 reactions synchronously [06:55:09] [RELOAD_TAB] ⏳ Already pending, waiting for debounce [06:55:09] [GALLERY_DB] Loading ALL media messages for session: ILUIWU [06:55:09] [MIGRATION] No messages need sender_name backfill [06:55:09] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=50 [06:55:09] [GALLERY_DB] Raw datesent for msg 19175: '2026-01-26 01:00:43' [06:55:09] [GALLERY_DB] Raw datesent for msg 19149: '2026-01-25 11:35:26' [06:55:09] [GALLERY_DB] Raw datesent for msg 19146: '2026-01-25 11:23:09' [06:55:09] [GALLERY_DB] ✅ Loaded 501 media messages [06:55:09] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19176 [06:55:09] [GALLERY] Filtered 501 -> 460 (only with local thumbnails) [06:55:09] [GALLERY] First 5 after sort (newest first): [06:55:09] [GALLERY] 0: id=19149, date=2026-01-25 11:35:26, file=6490cf96bed7f640.jpeg [06:55:09] [GALLERY] 1: id=19146, date=2026-01-25 11:23:09, file=a6c858d97a01507d.jpeg [06:55:09] [GALLERY] 2: id=19145, date=2026-01-25 10:08:48, file=01fe690830ee5ba7.jpg [06:55:09] [GALLERY] 3: id=19137, date=2026-01-25 01:00:43, file=51aff08c0a58b833.png [06:55:09] [GALLERY] 4: id=19014, date=2026-01-24 22:06:20, file=af34e8f2aaf5b05e.jpg [06:55:09] [SCROLL_BTN] Showing button - 32pt from bottom > half 22pt [06:55:09] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19126, 19127, 19128, 19129, 19130] [06:55:09] [EMOJI] ✅ Loaded 451 emoji-to-GIF mappings [06:55:09] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [06:55:09] [CELL_UPLOAD] → not my message, setting complete [06:55:09] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [06:55:09] [EVOLUTION_FILTER] 📝 Updated lastSeenMessageId after marking as read: 19174 → 19175 [06:55:09] [EVOLUTION_FILTER] 📝 Updated lastSeenMessageId after marking as read: 19175 → 19176 [06:55:09] [SERVER] Starting reconnect polling (5s interval) [06:55:09] [ICONS] Screen width: 440.0, Tab spacing: 75.5 [06:55:09] [ICONS] Offset applied: -14.6 [06:55:09] [ICONS] New left margin: 11.2, New right margin: 11.3 [06:55:09] [ICONS] Chat center: (31.2, 87.0) [06:55:09] [ICONS] Gallery center: (106.7, 87.0), deltaX: 75.5 [06:55:09] [ICONS] Camera center: (182.2, 87.0), deltaX: 75.5 [06:55:09] [ICONS] Settings center: (257.7, 87.0), deltaX: 75.5 [06:55:09] [ICONS] Lock centerX: 333.2, deltaX from Settings: 75.5 [06:55:09] [ICONS] Bell centerX: 408.7, deltaX from Lock: 75.5 [06:55:09] [ICONS] LEFT MARGIN (screen left to Chat left): 11.2 [06:55:09] [ICONS] RIGHT MARGIN (Bell right to screen right): 11.3 [06:55:09] [ICONS] Screen width: 440.0 [06:55:09] DOWNLOADIIING t_6bc3a9f1a52e9ae0.jpg [06:55:09] DOWNLOADIIING 6bc3a9f1a52e9ae0.png [06:55:10] [NETWORK] Status changed: connected [06:55:10] [NETWORK] Status changed: connected [06:55:10] [SCROLL_BTN] Showing button - 283pt from bottom > half 223pt [06:55:11] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU [06:55:11] Trying API base: https://crivello.dyndns.org:443/WebRTC/public/ [06:55:11] Trying API base: https://crivello.dyndns.org:443/WebRTC/public/ [06:55:11] Token POST → https://crivello.dyndns.org:443/WebRTC/public/new_session.php?sid=iosILUIWU [06:55:13] [NETWORK] Status changed: connected [06:55:14] [SERVER] Polling - attempting to reconnect... [06:55:17] [NETWORK] Status changed: connected [06:55:18] [CLIENT_SIG] Event received: type=3 messageId=19175 [06:55:18] [WS_EVENT] Received event: type=3, messageId=19175 [06:55:18] [WS_EVENT] Read receipt for message 19175 by Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [06:55:18] [INCREMENTAL_SYNC] ✅ No new messages [06:55:18] [PURGE] ⚠️ Media cache purge DISABLED for debugging [06:55:18] [UNSENT_RETRY] Checking for unsent messages... [06:55:18] [UPLOAD_RECOVERY] ========== CHECKING FOR MISSING UPLOADS ========== [06:55:18] [UPLOAD_RECOVERY] User ID: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF [06:55:18] [UPLOAD_RECOVERY] Session: ILUIWU [06:55:18] [UPLOAD_RECOVERY] ✅ No stuck uploads found [06:55:18] [UPLOAD_RECOVERY] Checking recent media messages on server... [06:55:18] [UPLOAD_RECOVERY] 📋 Recent media: msgId=19145, file=01fe690830ee5ba7.jpg, upload_status=complete [06:55:18] [UPLOAD_RECOVERY] 📋 Recent media: msgId=19014, file=af34e8f2aaf5b05e.jpg, upload_status=complete [06:55:18] [UPLOAD_RECOVERY] 📋 Recent media: msgId=18981, file=2852c0089aed517a.jpg, upload_status=complete [06:55:18] [UPLOAD_RECOVERY] Verifying 3 media files exist on server... [06:55:18] [PENDING_UPLOAD] Total pending upload messages: 0 [06:55:18] [UNSENT_RETRY] No unsent messages found [06:55:19] [NETWORK] Status changed: connected [06:55:19] [REPLY_DEBUG] 📤 didTapSend - Sending message WITHOUT reply [06:55:19] [SEND_MESSAGE] 📤 Sending message, currentMsgCount=50, isReloading=false [06:55:19] [SEND_MESSAGE] ✅ Added optimistic message id=-1 to arrays, newMsgCount=51 [06:55:19] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[-1, 19176, 19175, 19174, 19173] [06:55:19] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [06:55:19] [CELL_UPLOAD] → not my message, setting complete [06:55:19] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [06:55:19] [REPLY_DEBUG] ❌ cancelReply called - clearing messageToReplyTo [06:55:19] [REPLY_DEBUG] ⚠️ sendMessage HTTP BODY - No reply message captured [06:55:19] [SERVER] Polling - attempting to reconnect... [06:55:21] new_session POST error: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x1291c8ae0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <2BE3F0BF-1506-4A87-9C1C-FB63CA0B6407>.<16>, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask <2BE3F0BF-1506-4A87-9C1C-FB63CA0B6407>.<16>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/public/new_session.php?sid=iosILUIWU, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/public/new_session.php?sid=iosILUIWU, _kCFStreamErrorDomainKey=4} [06:55:21] Token GET → https://crivello.dyndns.org:443/WebRTC/public/new_session.php?sid=iosILUIWU&m=get [06:55:21] [NETWORK] Status changed: connected [06:55:21] [LOCK] Lock button tapped - locking app immediately [06:55:21] [LOCK] Received lock app notification [06:55:21] [USER] ❌ Registration failed: The request timed out. [06:55:21] [USER] User registration failed (will retry later) [06:55:21] [NETWORK] Status changed: connected [06:55:23] [MEDIA_DOWNLOAD] ✅ t_6bc3a9f1a52e9ae0.jpg complete [06:55:23] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [06:55:23] [MEDIA_DOWNLOAD] ✅ Set thumbnail for cell: 6bc3a9f1a52e9ae0.png from downloaded: t_6bc3a9f1a52e9ae0.jpg [06:55:23] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [06:55:23] [CELL_UPLOAD] → not my message, setting complete [06:55:23] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [06:55:24] [SERVER] Polling - attempting to reconnect... [06:55:25] [NETWORK] Status changed: connected [06:55:26] [PIN_AUTH] Correct PIN [06:55:26] [SECURITY] Restored real session: ILUIWU [06:55:26] [SECURITY] Restored real session: ILUIWU [06:55:26] [LOCK] ✅ PIN auth callback - setting isAuthenticated = true [06:55:26] [AUTH] Authentication completed - updating UI only (data already fetched in foreground handler) [06:55:26] [AUTH] UI update complete [06:55:26] [FAKE MODE] Exiting fake mode, restoring real session [06:55:26] [SECURITY] Restored real session: ILUIWU [06:55:26] [SECURITY] Saved real session: ILUIWU [06:55:26] [FAKE MODE] ✅ Restored real session: ILUIWU [06:55:26] [DB_SEND] 📥 Loaded msg id=-1 with send_status=1 (sending) [06:55:26] [FAKE MODE] Loaded 50 messages (limited to page size) [06:55:26] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [06:55:26] [CELL_UPLOAD] → not my message, setting complete [06:55:26] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [06:55:26] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19127, 19128, 19129, 19130, 19131] [06:55:26] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [06:55:26] [CELL_UPLOAD] → not my message, setting complete [06:55:26] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [06:55:27] [NETWORK] Status changed: connected [06:55:27] [UPLOAD_RECOVERY] ✅ All media files verified on server [06:55:27] [PUSH] Silent push received [06:55:27] [PUSH_EMBED] No embedded message_data in notification [06:55:27] [PUSH] No embedded data, pre-loading messages from server [06:55:27] [PUSH_PRELOAD] Fetching messages for instant display cache [06:55:29] [CLIENT_SIG] Event received: type=0 messageId=19177 [06:55:29] [WS_EVENT] Received event: type=0, messageId=19177 [06:55:29] [WS_EVENT] 📨 New message notification (msgId=19177) - triggering incremental refresh, currentMsgCount=50 [06:55:29] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=50 [06:55:29] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19176 [06:55:29] [CHAT] receive_message.php HTTP 200: {"ok":true,"message_id":19177,"session_id":"ILUIWU","message_type":0,"file_name":"","datesent_utc":"2026-01-26 05:55:27"} [06:55:29] [CHAT] receive_message.php JSON: ["ok": 1, "message_type": 0, "file_name": , "message_id": 19177, "session_id": ILUIWU, "datesent_utc": 2026-01-26 05:55:27] [06:55:29] [DB_UPGRADE] Upgrading message ID: -1 → 19177, preserveOriginalDate=false [06:55:29] [DB_UPGRADE] ✅ Upgraded -1 → 19177 with send_status=0, 1 row(s) affected [06:55:29] [SEND_UPGRADE] ✅ Updated chatMessages[49].id: -1 → 19177 [06:55:29] [SEND_UPGRADE] ✅ Updated allMessagesWithReadBy[49].id: -1 → 19177 [06:55:29] ReloadData 9 [06:55:29] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":1,"removed_from_other_channels":0} [06:55:29] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [06:55:29] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [06:55:29] [CELL_UPLOAD] → not my message, setting complete [06:55:29] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [06:55:29] [USER] ✅ User registered successfully [06:55:29] [PUSH] User registration after token update: success [06:55:29] [INCREMENTAL_SYNC] ✅ Found 1 new messages [06:55:29] [BLACKOUT_DEBUG] blackoutView=nil, newMessages.count=1 [06:55:29] [WS_EVENT] ✅ Incremental refresh complete, newMsgCount=50 [06:55:29] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [06:55:29] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push) [06:55:29] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19127, 19128, 19129, 19130, 19131] [06:55:29] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [06:55:29] [CELL_UPLOAD] → not my message, setting complete [06:55:29] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [06:55:29] [LOCK] Lock button tapped - locking app immediately [06:55:29] [LOCK] Received lock app notification [06:55:29] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [06:55:29] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("message_id"): 19175] [06:55:29] [PUSH] Parsed message_id: 19175 [06:55:29] [PUSH] Parsed operation_type: 3 [06:55:29] [PUSH] Taking direct action: opType=3, messageId=19175 [06:55:29] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19175 [06:55:29] [SERVER] Polling - attempting to reconnect... [06:55:30] [LIFECYCLE] App resigning active - cleared crash flag [06:55:30] [NETWORK] Status changed: connected [06:55:31] [SECURITY] sceneDidEnterBackground - isAuthenticated=false [06:55:31] [SECURITY] ⚠️ NOT saving timestamp - isAuthenticated is false [06:55:31] [LIFECYCLE] App entering background - cleared crash flag [06:55:31] [CLIENT_SIG] Disconnecting [06:55:31] [LIFECYCLE] App entering background - disconnecting connections and stopping audio [06:55:31] [WS] stopSignalingAndPeer called - isQueryOnly=true, connectionStr=iosILUIWU, wsState=0 [06:55:31] [WS] Canceling WebSocket for query connection to iosILUIWU [06:55:31] In cleanupPeer [06:55:31] In cleanupPeer [06:55:31] [LIFECYCLE] WebRTC audio disabled [06:55:31] [LIFECYCLE] AVAudioSession deactivated [06:55:31] [LIFECYCLE] All connections stopped [06:55:31] [CLIENT_SIG] WebSocket closed with code 1001 [06:55:31] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1) [06:55:31] [SERVER] Stopped reconnect polling [06:55:31] Will request stop of video 0 [06:55:31] Will request stop of video 0 [06:55:31] [WS] WebSocket task completed with error - isQueryOnly=true: cancelled [06:55:31] [WS] Query connection error - cleaning up all agent connections and views [06:55:31] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=http://crivello.dyndns.org:8081/, NSErrorFailingURLKey=http://crivello.dyndns.org:8081/} [06:55:31] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2) [06:55:31] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected [06:55:31] [WS] Query connection failed - cleaning up all agent connections and views [06:55:31] [PIP] Removing 0 tracks from PiP for connection 0 [06:55:31] [PIP] ✅ All tracks removed for connection 0 [06:55:31] [PIP] Removing 0 tracks from PiP for connection 0 [06:55:31] [PIP] ✅ All tracks removed for connection 0 [06:55:31] [CLEANUP] ======================================== [06:55:31] [CLEANUP] Cleaning up all agent connections and views [06:55:31] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [06:55:31] [CLEANUP] Stopped and removed 0 video connections [06:55:31] [CLEANUP] Removed 0 video views [06:55:31] [CLEANUP] Removed 0 feed scroll views [06:55:31] [CLEANUP] Removed 0 status labels [06:55:31] [CLEANUP] Reset agent query state [06:55:31] [CLEANUP] Updated page indicator [06:55:31] [CLEANUP] Rebuilt video layout [06:55:31] [CLEANUP] ✅ All agent connections and views cleaned up [06:55:31] [CLEANUP] ======================================== [06:55:31] [WS] URLSession invalidated successfully [06:55:31] [CLEANUP] ======================================== [06:55:31] [CLEANUP] Cleaning up all agent connections and views [06:55:31] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [06:55:31] [CLEANUP] Stopped and removed 0 video connections [06:55:31] [CLEANUP] Removed 0 video views [06:55:31] [CLEANUP] Removed 0 feed scroll views [06:55:31] [CLEANUP] Removed 0 status labels [06:55:31] [CLEANUP] Reset agent query state [06:55:31] [CLEANUP] Updated page indicator [06:55:31] [CLEANUP] Rebuilt video layout [06:55:31] [CLEANUP] ✅ All agent connections and views cleaned up [06:55:31] [CLEANUP] ======================================== [06:55:31] [SERVER] Skipping reconnect polling - app is in background [07:01:10] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU [07:01:10] [WS] Opening session at ws://crivello.dyndns.org:8081/ [07:01:10] [CLIENT_SIG] Connecting to session ILUIWU as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [07:01:10] [EVT] fetch by ids error: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x11a5c41b0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask .<31>, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask .<31>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/chat/chat_get_messages.php?viewer=1&session_id=ILUIWU&messages=19175&mark_read=0, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/chat/chat_get_messages.php?viewer=1&session_id=ILUIWU&messages=19175&mark_read=0, _kCFStreamErrorDomainKey=4} [07:01:10] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU [07:01:10] [CLIENT_SIG] Already connected/connecting to session ILUIWU [07:01:10] new_session GET error: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x11a5c5260 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <8064542B-4B62-4E84-8B9D-F04ABDBC475E>.<21>, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask <8064542B-4B62-4E84-8B9D-F04ABDBC475E>.<21>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://crivello.dyndns.org:443/WebRTC/public/new_session.php?sid=iosILUIWU&m=get, NSErrorFailingURLKey=https://crivello.dyndns.org:443/WebRTC/public/new_session.php?sid=iosILUIWU&m=get, _kCFStreamErrorDomainKey=4} [07:01:10] [LIFECYCLE] App entering foreground - restoring connections [07:01:10] [LIFECYCLE] Away > 2 minutes (339s) - will scroll to bottom [07:01:10] [UPLOAD_RETRY] No pending uploads to retry [07:01:10] [NETWORK] Status changed: connected [07:01:10] [LIFECYCLE] Merged 971 reactions from local DB [07:01:10] [LIFECYCLE] WebRTC audio re-enabled [07:01:10] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone) [07:01:10] [CLIENT_SIG] Setting up client signaling for session: ILUIWU [07:01:10] [CLIENT_SIG] Already connected/connecting to session ILUIWU [07:01:10] [VIEWER] Reconnecting after background - querying agents [07:01:10] [UNSENT_RETRY] Checking for unsent messages... [07:01:10] [PENDING_UPLOAD] Total pending upload messages: 0 [07:01:10] [UNSENT_RETRY] No unsent messages found [07:01:10] [DOWNLOAD_ERROR] 6bc3a9f1a52e9ae0.png failed: The request timed out. (code=-1001, domain=NSURLErrorDomain) [07:01:10] [MEDIA_DOWNLOAD] ❌ 6bc3a9f1a52e9ae0.png failed: The request timed out. (code=-1001) [07:01:10] [READBY_ENRICH] Enriched 0 messages with readBy data [07:01:10] [FAKE MODE] Enriched 0 messages with readBy data [07:01:10] [RELOAD_TAB] ⏳ Already pending, waiting for debounce [07:01:10] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:01:10] [RELOAD_TAB] ⏳ Already pending, waiting for debounce [07:01:10] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19127, 19128, 19129, 19130, 19131] [07:01:10] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [07:01:10] [CELL_UPLOAD] → not my message, setting complete [07:01:10] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:01:10] [SECURITY] sceneDidBecomeActive - isAuthenticated=false, didEnterBackground=false [07:01:10] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow [07:01:10] [PUSH] handlePollEventsNotification userInfo: [:] [07:01:10] [PUSH] No message_id in userInfo [07:01:10] [PUSH] No operation_type in userInfo [07:01:10] [FAST_REFRESH] Evolution disabled - performing incremental sync [07:01:10] [FAST_REFRESH] Already have 50 messages - skipping local DB load [07:01:10] [FAST_REFRESH] About to call reloadMessagesForCurrentTab(), isMainThread=true, viewLoaded=true [07:01:10] [FAST_REFRESH] reloadMessagesForCurrentTab() called successfully [07:01:10] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=50 [07:01:10] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19177 [07:01:10] [INCREMENTAL_SYNC] ✅ No new messages [07:01:10] [FAST_REFRESH] Incremental sync complete - 50 messages [07:01:10] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU [07:01:10] Trying API base: https://crivello.dyndns.org:443/WebRTC/public/ [07:01:10] Trying API base: https://crivello.dyndns.org:443/WebRTC/public/ [07:01:10] Token POST → https://crivello.dyndns.org:443/WebRTC/public/new_session.php?sid=iosILUIWU [07:01:10] new_session POST ok: token len=157 [07:01:10] HELLO → sent (fetched token, role=query) [07:01:10] [SIG] hello_ok received for query connection - ready to query agents [07:01:10] [SIG] get_agents request sent for sessionId=ILUIWU [07:01:10] [SIG] get_agents request sent for sessionId=iosILUIWU [07:01:10] [SERVER] Stopped reconnect polling [07:01:10] [SIG] agents_list received: [] [07:01:10] [SIG] agents_list received: [] [07:01:11] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19127, 19128, 19129, 19130, 19131] [07:01:11] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [07:01:11] [CELL_UPLOAD] → not my message, setting complete [07:01:11] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:01:11] [CLIENT_SIG] WebSocket opened [07:01:11] [CLIENT_SIG] HELLO sent as client for session ILUIWU [07:01:11] [CLIENT_SIG] Connected! clientId=qQJR-0t4XdJhNwQz [07:01:11] [CLIENT_SIG] Received 1 clients for session 'ILUIWU' (my session: 'ILUIWU') [07:01:11] [CLIENT_SIG] - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [07:01:11] [COMBINED_FETCH] Loaded 7939 read receipts, 973 messages with reactions [07:01:11] [FOREGROUND] Enriched 48 messages with readBy data from server [07:01:11] [COMBINED_FETCH] Loaded 7939 read receipts, 973 messages with reactions [07:01:11] [FAST_REFRESH] Enriched 50 messages with readBy data [07:01:11] [RELOAD_TAB] ⏳ Already pending, waiting for debounce [07:01:11] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19127, 19128, 19129, 19130, 19131] [07:01:11] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [07:01:11] [CELL_UPLOAD] → not my message, setting complete [07:01:11] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:01:12] [PIN_AUTH] Correct PIN [07:01:12] [SECURITY] Restored real session: ILUIWU [07:01:12] [SECURITY] Restored real session: ILUIWU [07:01:12] [LOCK] ✅ PIN auth callback - setting isAuthenticated = true [07:01:12] [AUTH] Authentication completed - updating UI only (data already fetched in foreground handler) [07:01:12] [AUTH] UI update complete [07:01:12] [FAKE MODE] Exiting fake mode, restoring real session [07:01:12] [SECURITY] Restored real session: ILUIWU [07:01:12] [SECURITY] Saved real session: ILUIWU [07:01:12] [FAKE MODE] ✅ Restored real session: ILUIWU [07:01:12] [FAKE MODE] Loaded 50 messages (limited to page size) [07:01:12] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":1,"removed_from_other_channels":0} [07:01:12] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [07:01:12] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [07:01:12] [CELL_UPLOAD] → not my message, setting complete [07:01:12] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:01:12] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19127, 19128, 19129, 19130, 19131] [07:01:12] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [07:01:12] [CELL_UPLOAD] → not my message, setting complete [07:01:12] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:01:13] [USER] ✅ User registered successfully [07:01:13] [PUSH] User registration after token update: success [07:01:13] [COMBINED_FETCH] Loaded 7939 read receipts, 973 messages with reactions [07:01:13] [FAKE MODE] Enriched 50 messages with readBy data [07:01:13] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19127, 19128, 19129, 19130, 19131] [07:01:13] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [07:01:13] [CELL_UPLOAD] → not my message, setting complete [07:01:13] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:01:20] [WS] WebSocket task completed with error - isQueryOnly=true: The request timed out. [07:01:20] [WS] Query connection error - cleaning up all agent connections and views [07:01:20] [CLEANUP] ======================================== [07:01:20] [CLEANUP] Cleaning up all agent connections and views [07:01:20] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [07:01:20] [CLEANUP] Stopped and removed 0 video connections [07:01:20] [CLEANUP] Removed 0 video views [07:01:20] [CLEANUP] Removed 0 feed scroll views [07:01:20] [CLEANUP] Removed 0 status labels [07:01:20] [CLEANUP] Reset agent query state [07:01:20] [CLEANUP] Updated page indicator [07:01:20] [CLEANUP] Rebuilt video layout [07:01:20] [CLEANUP] ✅ All agent connections and views cleaned up [07:01:20] [CLEANUP] ======================================== [07:01:20] [SERVER] Starting reconnect polling (5s interval) [07:01:25] [TAP_REPLAY] 🔄 replayEvolutionAnimation called for messageId=19176 [07:01:25] [TAP_REPLAY] 📦 Found message: text.count=19, evolutionData.isEmpty=true [07:01:25] [TAP_REPLAY] 📡 No local evolution data - fetching from server [07:01:25] [TAP_REPLAY] 🔍 Server response keys: ["created_at", "evolution", "has_evolution", "message_id", "ok"] [07:01:25] [TAP_REPLAY] ✅ Successfully fetched 17 events from server - calling playEvolutionInline [07:01:25] [EVOLUTION] 🎬 playEvolutionInline called for message 19176 with 17 events [07:01:25] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:25] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:25] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:25] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText=' ', text='Good morning babyy💋' [07:01:25] [UPDATE_CELL] ✅ Updating ChatCell label to: ' ' [07:01:25] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:25] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:25] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:25] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='G', text='Good morning babyy💋' [07:01:25] [UPDATE_CELL] ✅ Updating ChatCell label to: 'G' [07:01:25] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:25] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:25] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:25] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Go', text='Good morning babyy💋' [07:01:25] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Go' [07:01:25] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:25] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:25] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:25] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Goo', text='Good morning babyy💋' [07:01:25] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Goo' [07:01:25] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:25] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:25] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:25] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Good', text='Good morning babyy💋' [07:01:25] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Good' [07:01:25] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:25] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:25] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:25] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Good ', text='Good morning babyy💋' [07:01:25] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Good ' [07:01:25] [SERVER] Polling - attempting to reconnect... [07:01:25] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:25] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:25] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:25] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Good m', text='Good morning babyy💋' [07:01:25] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Good m' [07:01:26] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:26] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:26] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:26] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Good mo', text='Good morning babyy💋' [07:01:26] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Good mo' [07:01:26] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:26] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:26] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:26] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Good morning', text='Good morning babyy💋' [07:01:26] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Good morning' [07:01:27] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:27] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:27] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:27] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Good mo', text='Good morning babyy💋' [07:01:27] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Good mo' [07:01:27] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:27] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:27] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:27] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Good morning', text='Good morning babyy💋' [07:01:27] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Good morning' [07:01:27] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:27] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:27] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:27] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Good morning ', text='Good morning babyy💋' [07:01:27] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Good morning ' [07:01:28] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:28] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:28] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:28] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Good morning b', text='Good morning babyy💋' [07:01:28] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Good morning b' [07:01:28] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:28] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:28] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:28] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Good morning ba', text='Good morning babyy💋' [07:01:28] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Good morning ba' [07:01:28] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:28] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:28] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:28] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Good morning bab', text='Good morning babyy💋' [07:01:28] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Good morning bab' [07:01:29] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:29] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:29] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:29] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Good morning baby', text='Good morning babyy💋' [07:01:29] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Good morning baby' [07:01:29] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:29] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:29] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:29] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Good morning babyy', text='Good morning babyy💋' [07:01:29] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Good morning babyy' [07:01:30] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:30] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:30] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [07:01:30] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Good morning babyy💋', text='Good morning babyy💋' [07:01:30] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Good morning babyy💋' [07:01:30] [UPDATE_CELL] 🔍 updateMessageCell called for message 19176 [07:01:30] [UPDATE_CELL] Initial targetRowIndex=51 [07:01:30] [UPDATE_CELL] Rebuilt chatRows, count=53 [07:01:30] [UPDATE_CELL] After rebuild targetRowIndex=51 [07:01:30] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=false, evolutionText='Good morning babyy💋', text='Good morning babyy💋' [07:01:30] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Good morning babyy💋' [07:01:30] [EVOLUTION] ✅ Animation complete for message 19176 - marking as read now [07:01:30] [NETWORK] Status changed: connected [07:01:30] [SERVER] Polling - attempting to reconnect... [07:01:32] [DOUBLE_TAP] Adding heart reaction to message 19176 [07:01:32] [DOUBLE_TAP] Action: add (alreadyReactedWithHeart: false) [07:01:33] [DOUBLE_TAP] Heart reaction added successfully (status: ok) [07:01:33] DOWNLOADIIING 6bc3a9f1a52e9ae0.png [07:01:33] [MEDIA_DOWNLOAD] ✅ 6bc3a9f1a52e9ae0.png complete [07:01:33] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:01:33] [MEDIA_DOWNLOAD] ✅ Set thumbnail for cell: 6bc3a9f1a52e9ae0.png from downloaded: 6bc3a9f1a52e9ae0.png [07:01:33] [NETWORK] Status changed: connected [07:01:33] [NETWORK] Status changed: connected [07:01:34] [LOCK] Lock button tapped - locking app immediately [07:01:34] [LOCK] Received lock app notification [07:01:35] [LIFECYCLE] App resigning active - cleared crash flag [07:01:35] [SERVER] Polling - attempting to reconnect... [07:01:36] [SECURITY] sceneDidEnterBackground - isAuthenticated=false [07:01:36] [SECURITY] ⚠️ NOT saving timestamp - isAuthenticated is false [07:01:36] [LIFECYCLE] App entering background - cleared crash flag [07:01:36] [CLIENT_SIG] Disconnecting [07:01:36] [LIFECYCLE] App entering background - disconnecting connections and stopping audio [07:01:36] [WS] stopSignalingAndPeer called - isQueryOnly=true, connectionStr=iosILUIWU, wsState=3 [07:01:36] [WS] Canceling WebSocket for query connection to iosILUIWU [07:01:36] In cleanupPeer [07:01:36] In cleanupPeer [07:01:36] [LIFECYCLE] WebRTC audio disabled [07:01:36] [LIFECYCLE] AVAudioSession deactivated [07:01:36] [LIFECYCLE] All connections stopped [07:01:36] [CLIENT_SIG] WebSocket closed with code 1001 [07:01:36] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1) [07:01:36] [SERVER] Stopped reconnect polling [07:01:36] Will request stop of video 0 [07:01:36] [WS] URLSession invalidated successfully [07:01:36] Will request stop of video 0 [07:01:36] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=http://crivello.dyndns.org:8081/, NSErrorFailingURLKey=http://crivello.dyndns.org:8081/} [07:01:36] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2) [07:27:08] [CRASH] No crash detected [07:27:08] [FONT] Roboto fonts loaded successfully: Roboto-Regular [07:27:08] [FONT] ChatFont.regular(18) returns: Roboto-Regular, family: Roboto [07:27:08] [GIPHY] SDK not available - using REST API fallback [07:27:08] [BACKGROUND] Background fetch enabled [07:27:08] [AUTH] Starting PIN authentication [07:27:08] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU [07:27:08] [CLIENT_SIG] Connecting to session ILUIWU as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [07:27:08] [CLEANUP] No old timer messages to delete [07:27:08] [PUSH] APNs token: 6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c [07:27:08] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":1,"removed_from_other_channels":0} [07:27:08] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [07:27:08] [USER] ✅ User registered successfully [07:27:08] [PUSH] User registration after token update: success [07:27:08] [SECURITY] sceneDidBecomeActive - isAuthenticated=false, didEnterBackground=false [07:27:08] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow [07:27:08] [PRELOAD] ⚡ Starting message pre-load during authentication (since_id=19177)... [07:27:08] [CLIENT_SIG] WebSocket opened [07:27:08] [CLIENT_SIG] HELLO sent as client for session ILUIWU [07:27:08] [CLIENT_SIG] Connected! clientId=SdhlGbI2VtdIgGo5 [07:27:08] [CLIENT_SIG] Received 1 clients for session 'ILUIWU' (my session: 'ILUIWU') [07:27:08] [CLIENT_SIG] - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [07:27:08] [PRELOAD] No messages or parse error [07:27:10] [PIN_AUTH] Correct PIN [07:27:10] [SECURITY] Restored real session: ILUIWU [07:27:10] [SECURITY] Restored real session: ILUIWU [07:27:10] [SECURITY] Saved real session: ILUIWU [07:27:10] [SCENE] Launched directly to chat view with sessionId: ILUIWU [07:27:10] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone) [07:27:10] Documents Directory: /var/mobile/Containers/Data/Application/75035B73-3F30-4A91-A570-8F3EEDE21803/Documents [07:27:10] [UPLOAD_QUEUE] Found 0 pending uploads to resume [07:27:10] [THEME] Applying current theme [07:27:10] [CHAT] Applied day theme (mode: day) [07:27:10] [SECURITY] Saved real session: ILUIWU [07:27:10] [CLIENT_SIG] Setting up client signaling for session: ILUIWU [07:27:10] [CLIENT_SIG] Already connected/connecting to session ILUIWU [07:27:10] [NETWORK] Network monitor started [07:27:10] [NETWORK] Status changed: connected [07:27:10] Did transition [07:27:10] [MODE] 🔍 updateModeUI called - currentTabIndex=0, sessionId=ILUIWU [07:27:10] [VIEWER] Screen lock enabled - normal idle behavior [07:27:10] [QUERY] 🔍 Creating query connection for iOS slave: iosILUIWU [07:27:10] [VCC] ========== VideoConnectionClass INIT ========== [07:27:10] [VCC] Session: iosILUIWU, ViewIdx: 0, AgentId: nil [07:27:10] [DATA AUDIO] ========== setupWebRTC() START ========== [07:27:10] [DATA AUDIO] Using data channel for audio - bypassing WebRTC audio device [07:27:10] [DATA AUDIO] Creating encoder/decoder factories... [07:27:10] [CODEC] Viewer - Available video codecs: H264, H264, VP8, VP9, AV1 [07:27:10] [CODEC] Viewer selected encoder: AV1 (best quality) [07:27:10] [DATA AUDIO] Creating RTCPeerConnectionFactory... [07:27:10] [DATA AUDIO] ✅ Factory created [07:27:10] [DATA AUDIO] RTCAudioSession locked [07:27:10] [DATA AUDIO] Set useManualAudio=true, isAudioEnabled=false [07:27:10] [DATA AUDIO] RTCAudioSession unlocked [07:27:10] [DATA AUDIO] Skipping AVAudioSession config - handled by DataChannelAudioPlayer [07:27:10] [VCC] Initial ICE servers: ["stun:stun.l.google.com:19302", "turn:crivello.dyndns.org:3478?transport=udp", "turn:crivello.dyndns.org:3478?transport=tcp", "turns:crivello.dyndns.org:5349?transport=tcp"] [07:27:10] [WS] Creating new WebSocket - isQueryOnly=false, connectionStr=iosILUIWU [07:27:10] [WS] Opening session at ws://crivello.dyndns.org:8081/ [07:27:10] [QUERY] ✅ tempQueryConnection created for iosILUIWU [07:27:10] [VIEWER_INIT] Already have 50 messages - just filtering for tab [07:27:10] [EVENT_POLL] Event polling disabled - using WebSocket events instead [07:27:10] [ORIENTATION] Updated pagingScrollView height to 247.5 for width 440.0 [07:27:10] Did transition [07:27:10] [TABLEVIEW] cellForRowAt index 0 out of bounds (count=0) [07:27:10] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [07:27:10] [CHUNK] Merged 972 reactions synchronously [07:27:10] [RELOAD_TAB] ⏳ Already pending, waiting for debounce [07:27:10] [GALLERY_DB] Loading ALL media messages for session: ILUIWU [07:27:10] [MIGRATION] No messages need sender_name backfill [07:27:10] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=50 [07:27:10] [GALLERY_DB] Raw datesent for msg 19175: '2026-01-26 01:00:43' [07:27:10] [GALLERY_DB] Raw datesent for msg 19149: '2026-01-25 11:35:26' [07:27:10] [GALLERY_DB] Raw datesent for msg 19146: '2026-01-25 11:23:09' [07:27:10] [USER] ✅ User registered successfully [07:27:10] [USER] User registration successful [07:27:10] [GALLERY_DB] ✅ Loaded 501 media messages [07:27:10] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19177 [07:27:10] [INCREMENTAL_SYNC] ✅ No new messages [07:27:10] [GALLERY] Filtered 501 -> 461 (only with local thumbnails) [07:27:10] [GALLERY] First 5 after sort (newest first): [07:27:10] [GALLERY] 0: id=19175, date=2026-01-26 01:00:43, file=6bc3a9f1a52e9ae0.png [07:27:10] [GALLERY] 1: id=19149, date=2026-01-25 11:35:26, file=6490cf96bed7f640.jpeg [07:27:10] [GALLERY] 2: id=19146, date=2026-01-25 11:23:09, file=a6c858d97a01507d.jpeg [07:27:10] [GALLERY] 3: id=19145, date=2026-01-25 10:08:48, file=01fe690830ee5ba7.jpg [07:27:10] [GALLERY] 4: id=19137, date=2026-01-25 01:00:43, file=51aff08c0a58b833.png [07:27:10] [SCROLL_BTN] Showing button - 32pt from bottom > half 22pt [07:27:10] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19127, 19128, 19129, 19130, 19131] [07:27:10] [EMOJI] ✅ Loaded 451 emoji-to-GIF mappings [07:27:10] [CELL_UPLOAD] configure: msgId=19137, file=51aff08c0a58b833.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [07:27:10] [CELL_UPLOAD] → not my message, setting complete [07:27:10] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=51aff08c0a58b833.png, overlayExists=true [07:27:10] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [07:27:10] [CELL_UPLOAD] → not my message, setting complete [07:27:10] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:27:10] [SERVER] Starting reconnect polling (5s interval) [07:27:10] [ICONS] Screen width: 440.0, Tab spacing: 75.5 [07:27:10] [ICONS] Offset applied: -14.6 [07:27:10] [ICONS] New left margin: 11.2, New right margin: 11.3 [07:27:10] [ICONS] Chat center: (31.2, 87.0) [07:27:10] [ICONS] Gallery center: (106.7, 87.0), deltaX: 75.5 [07:27:10] [ICONS] Camera center: (182.2, 87.0), deltaX: 75.5 [07:27:10] [ICONS] Settings center: (257.7, 87.0), deltaX: 75.5 [07:27:10] [ICONS] Lock centerX: 333.2, deltaX from Settings: 75.5 [07:27:10] [ICONS] Bell centerX: 408.7, deltaX from Lock: 75.5 [07:27:10] [ICONS] LEFT MARGIN (screen left to Chat left): 11.2 [07:27:10] [ICONS] RIGHT MARGIN (Bell right to screen right): 11.3 [07:27:10] [ICONS] Screen width: 440.0 [07:27:10] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU [07:27:10] Trying API base: https://crivello.dyndns.org:443/WebRTC/public/ [07:27:10] Trying API base: https://crivello.dyndns.org:443/WebRTC/public/ [07:27:10] Token POST → https://crivello.dyndns.org:443/WebRTC/public/new_session.php?sid=iosILUIWU [07:27:10] [PURGE] ⚠️ Media cache purge DISABLED for debugging [07:27:10] [UNSENT_RETRY] Checking for unsent messages... [07:27:10] [UPLOAD_RECOVERY] ========== CHECKING FOR MISSING UPLOADS ========== [07:27:10] [UPLOAD_RECOVERY] User ID: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF [07:27:10] [UPLOAD_RECOVERY] Session: ILUIWU [07:27:10] [UPLOAD_RECOVERY] ✅ No stuck uploads found [07:27:10] [UPLOAD_RECOVERY] Checking recent media messages on server... [07:27:10] [UPLOAD_RECOVERY] 📋 Recent media: msgId=19145, file=01fe690830ee5ba7.jpg, upload_status=complete [07:27:10] [UPLOAD_RECOVERY] 📋 Recent media: msgId=19014, file=af34e8f2aaf5b05e.jpg, upload_status=complete [07:27:10] [UPLOAD_RECOVERY] 📋 Recent media: msgId=18981, file=2852c0089aed517a.jpg, upload_status=complete [07:27:10] [UPLOAD_RECOVERY] Verifying 3 media files exist on server... [07:27:10] [PENDING_UPLOAD] Total pending upload messages: 0 [07:27:10] [UNSENT_RETRY] No unsent messages found [07:27:10] new_session POST ok: token len=157 [07:27:10] HELLO → sent (fetched token, role=query) [07:27:10] [UPLOAD_RECOVERY] ✅ All media files verified on server [07:27:10] [SIG] hello_ok received for query connection - ready to query agents [07:27:10] [SIG] get_agents request sent for sessionId=ILUIWU [07:27:10] [SIG] get_agents request sent for sessionId=iosILUIWU [07:27:10] [SERVER] Stopped reconnect polling [07:27:10] [SIG] agents_list received: [] [07:27:10] [SIG] agents_list received: [] [07:27:11] [COMBINED_FETCH] Loaded 7939 read receipts, 974 messages with reactions [07:27:11] [READBY_ENRICH] Enriched 50 messages with readBy data [07:27:11] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19127, 19128, 19129, 19130, 19131] [07:27:11] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [07:27:11] [CELL_UPLOAD] → not my message, setting complete [07:27:11] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:27:11] [MUTE] Status sent to server: muted=0, response code=200 [07:27:11] [MUTE] Status sent to server: muted=0, response code=200 [07:27:12] [PUSH] Silent push received [07:27:12] [PUSH_EMBED] No embedded message_data in notification [07:27:12] [PUSH] No embedded data, pre-loading messages from server [07:27:12] [PUSH_PRELOAD] Fetching messages for instant display cache [07:27:12] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [07:27:12] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push) [07:27:12] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [07:27:12] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("message_id"): 19176, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("operation_type"): 3] [07:27:12] [PUSH] Parsed message_id: 19176 [07:27:12] [PUSH] Parsed operation_type: 3 [07:27:12] [PUSH] Taking direct action: opType=3, messageId=19176 [07:27:12] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19176 [07:27:12] [CLIENT_SIG] Event received: type=3 messageId=19176 [07:27:12] [WS_EVENT] Received event: type=3, messageId=19176 [07:27:12] [WS_EVENT] Read receipt for message 19176 by Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [07:27:18] [LIFECYCLE] App resigning active - cleared crash flag [07:27:19] [SECURITY] sceneDidEnterBackground - isAuthenticated=true [07:27:19] [SECURITY] Saved background timestamp [07:27:19] [LIFECYCLE] App entering background - cleared crash flag [07:27:19] [CLIENT_SIG] Disconnecting [07:27:19] [LIFECYCLE] App entering background - disconnecting connections and stopping audio [07:27:19] [WS] stopSignalingAndPeer called - isQueryOnly=true, connectionStr=iosILUIWU, wsState=0 [07:27:19] [WS] Canceling WebSocket for query connection to iosILUIWU [07:27:19] In cleanupPeer [07:27:19] In cleanupPeer [07:27:19] [LIFECYCLE] WebRTC audio disabled [07:27:19] [LIFECYCLE] AVAudioSession deactivated [07:27:19] [LIFECYCLE] All connections stopped [07:27:19] [CLIENT_SIG] WebSocket closed with code 1001 [07:27:19] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1) [07:27:19] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=http://crivello.dyndns.org:8081/, NSErrorFailingURLKey=http://crivello.dyndns.org:8081/} [07:27:19] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2) [07:27:19] [SERVER] Stopped reconnect polling [07:27:19] Will request stop of video 0 [07:27:19] Will request stop of video 0 [07:27:19] [WS] WebSocket task completed with error - isQueryOnly=true: cancelled [07:27:19] [WS] Query connection error - cleaning up all agent connections and views [07:27:19] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected [07:27:19] [WS] Query connection failed - cleaning up all agent connections and views [07:27:19] [PIP] Removing 0 tracks from PiP for connection 0 [07:27:19] [PIP] ✅ All tracks removed for connection 0 [07:27:19] [PIP] Removing 0 tracks from PiP for connection 0 [07:27:19] [PIP] ✅ All tracks removed for connection 0 [07:27:19] [CLEANUP] ======================================== [07:27:19] [CLEANUP] Cleaning up all agent connections and views [07:27:19] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [07:27:19] [CLEANUP] Stopped and removed 0 video connections [07:27:19] [CLEANUP] Removed 0 video views [07:27:19] [CLEANUP] Removed 0 feed scroll views [07:27:19] [CLEANUP] Removed 0 status labels [07:27:19] [CLEANUP] Reset agent query state [07:27:19] [CLEANUP] Updated page indicator [07:27:19] [CLEANUP] Rebuilt video layout [07:27:19] [CLEANUP] ✅ All agent connections and views cleaned up [07:27:19] [CLEANUP] ======================================== [07:27:19] [SERVER] Skipping reconnect polling - app is in background [07:27:19] [WS] URLSession invalidated successfully [07:27:19] [CLEANUP] ======================================== [07:27:19] [CLEANUP] Cleaning up all agent connections and views [07:27:19] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [07:27:19] [CLEANUP] Stopped and removed 0 video connections [07:27:19] [CLEANUP] Removed 0 video views [07:27:19] [CLEANUP] Removed 0 feed scroll views [07:27:19] [CLEANUP] Removed 0 status labels [07:27:19] [CLEANUP] Reset agent query state [07:27:19] [CLEANUP] Updated page indicator [07:27:19] [CLEANUP] Rebuilt video layout [07:27:19] [CLEANUP] ✅ All agent connections and views cleaned up [07:27:19] [CLEANUP] ======================================== [07:27:19] [SERVER] Skipping reconnect polling - app is in background [07:36:54] [SECURITY] Timeout check: elapsed=575.489091873169s, timeout=300.0s [07:36:54] [SECURITY] sceneWillEnterForeground - timeout exceeded, showing lock screen immediately [07:36:54] [AUTH] ✅ All guards passed, showing privacy cover [07:36:54] [LIFECYCLE] App entering foreground - restoring connections [07:36:54] [LIFECYCLE] Away > 2 minutes (575s) - will scroll to bottom [07:36:54] [UPLOAD_RETRY] No pending uploads to retry [07:36:54] [LIFECYCLE] Merged 972 reactions from local DB [07:36:54] [LIFECYCLE] WebRTC audio re-enabled [07:36:54] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone) [07:36:54] [CLIENT_SIG] Setting up client signaling for session: ILUIWU [07:36:54] [CLIENT_SIG] Connecting to session ILUIWU as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [07:36:54] [VIEWER] Reconnecting after background - querying agents [07:36:54] [UNSENT_RETRY] Checking for unsent messages... [07:36:54] [PENDING_UPLOAD] Total pending upload messages: 0 [07:36:54] [UNSENT_RETRY] No unsent messages found [07:36:54] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU [07:36:54] [WS] Opening session at ws://crivello.dyndns.org:8081/ [07:36:54] [CLIENT_SIG] Already connected/connecting to session ILUIWU [07:36:54] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19127, 19128, 19129, 19130, 19131] [07:36:54] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [07:36:54] [CELL_UPLOAD] → not my message, setting complete [07:36:54] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:36:54] [SECURITY] sceneDidBecomeActive - isAuthenticated=false, didEnterBackground=false [07:36:54] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow [07:36:54] [PUSH] handlePollEventsNotification userInfo: [:] [07:36:54] [PUSH] No message_id in userInfo [07:36:54] [PUSH] No operation_type in userInfo [07:36:54] [FAST_REFRESH] Evolution disabled - performing incremental sync [07:36:54] [FAST_REFRESH] Already have 50 messages - skipping local DB load [07:36:54] [FAST_REFRESH] About to call reloadMessagesForCurrentTab(), isMainThread=true, viewLoaded=true [07:36:54] [FAST_REFRESH] reloadMessagesForCurrentTab() called successfully [07:36:54] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=50 [07:36:54] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19177 [07:36:54] [INCREMENTAL_SYNC] ✅ No new messages [07:36:54] [FAST_REFRESH] Incremental sync complete - 50 messages [07:36:54] [CLIENT_SIG] WebSocket opened [07:36:54] [CLIENT_SIG] HELLO sent as client for session ILUIWU [07:36:54] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU [07:36:54] HELLO → sent (cached token, role=query) [07:36:54] [CLIENT_SIG] Connected! clientId=l1eWvOQtu_Ct3CQP [07:36:54] [SIG] hello_ok received for query connection - ready to query agents [07:36:54] [SIG] get_agents request sent for sessionId=ILUIWU [07:36:54] [SIG] get_agents request sent for sessionId=iosILUIWU [07:36:54] [SERVER] Stopped reconnect polling [07:36:54] [CLIENT_SIG] Received 1 clients for session 'ILUIWU' (my session: 'ILUIWU') [07:36:54] [CLIENT_SIG] - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [07:36:54] [SIG] agents_list received: [] [07:36:54] [SIG] agents_list received: [] [07:36:54] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19127, 19128, 19129, 19130, 19131] [07:36:54] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [07:36:54] [CELL_UPLOAD] → not my message, setting complete [07:36:54] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:36:55] [COMBINED_FETCH] Loaded 7939 read receipts, 974 messages with reactions [07:36:55] [FOREGROUND] Enriched 0 messages with readBy data from server [07:36:55] [COMBINED_FETCH] Loaded 7939 read receipts, 974 messages with reactions [07:36:55] [FAST_REFRESH] Enriched 50 messages with readBy data [07:36:55] [RELOAD_TAB] ⏳ Already pending, waiting for debounce [07:36:55] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19127, 19128, 19129, 19130, 19131] [07:36:55] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [07:36:55] [CELL_UPLOAD] → not my message, setting complete [07:36:55] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:36:56] [PIN_AUTH] Correct PIN [07:36:56] [SECURITY] Restored real session: ILUIWU [07:36:56] [SECURITY] Restored real session: ILUIWU [07:36:56] [AUTH] Authentication completed - updating UI only (data already fetched in foreground handler) [07:36:56] [AUTH] UI update complete [07:36:56] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU [07:36:56] [CLIENT_SIG] Already connected/connecting to session ILUIWU [07:36:56] [FAKE MODE] Exiting fake mode, restoring real session [07:36:56] [SECURITY] Restored real session: ILUIWU [07:36:56] [SECURITY] Saved real session: ILUIWU [07:36:56] [FAKE MODE] ✅ Restored real session: ILUIWU [07:36:56] [FAKE MODE] Loaded 50 messages (limited to page size) [07:36:56] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":0,"removed_from_other_channels":0} [07:36:56] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [07:36:56] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [07:36:56] [CELL_UPLOAD] → not my message, setting complete [07:36:56] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:36:56] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19127, 19128, 19129, 19130, 19131] [07:36:56] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [07:36:56] [CELL_UPLOAD] → not my message, setting complete [07:36:56] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:36:56] [USER] ✅ User registered successfully [07:36:56] [PUSH] User registration after token update: success [07:36:57] [COMBINED_FETCH] Loaded 7939 read receipts, 974 messages with reactions [07:36:57] [FAKE MODE] Enriched 50 messages with readBy data [07:36:57] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19127, 19128, 19129, 19130, 19131] [07:36:57] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [07:36:57] [CELL_UPLOAD] → not my message, setting complete [07:36:57] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:36:58] [CAMERA] Switch-over factors: [2, 8] [07:36:58] [CAMERA] Virtual device max zoom: 123.75 [07:36:58] [CAMERA] 0.5x: virtual device at zoom 1.0 (ultra-wide) [07:36:58] [CAMERA] 1x: virtual device at zoom 2.0 (wide angle, macro enabled) [07:36:58] [CAMERA] 2x: virtual device at zoom 4.0 [07:36:58] [CAMERA] 4x: virtual device at zoom 8.0 (telephoto) [07:36:58] [CAMERA] 8x: virtual device at zoom 16.0 [07:36:58] [CAMERA] Discovered 5 lenses: ["0.5x=1.0", "1x=2.0", "2x=4.0", "4x=8.0", "8x=16.0"] [07:36:58] [CAMERA] Using device: Front Camera (AVCaptureDeviceTypeBuiltInWideAngleCamera) [07:36:58] [CAMERA] updateVideoOrientation - no connection or orientation not supported [07:36:58] [CAMERA] viewDidLayoutSubviews - previewView.bounds: (0.0, 0.0, 440.0, 796.0), camera: FRONT [07:36:58] [CAMERA] updateVideoOrientation - no connection or orientation not supported [07:36:58] [CAMERA] viewDidLayoutSubviews - previewView.bounds: (0.0, 0.0, 440.0, 796.0), camera: FRONT [07:36:58] [VOLUME] Starting volume button monitoring [07:36:58] [VOLUME] Hidden MPVolumeView installed [07:36:58] [VOLUME] Observing volume (no audio session activation), initial volume: 0.25 [07:36:58] [VOLUME] Volume observation started [07:36:58] [CAMERA] updateVideoOrientation - no connection or orientation not supported [07:36:58] [CAMERA] viewDidLayoutSubviews - previewView.bounds: (0.0, 0.0, 440.0, 796.0), camera: FRONT [07:36:59] [CAMERA] Configuring focus for Front Camera [07:36:59] [CAMERA] Focus configured: mode=1, subjectAreaMonitoring=true [07:36:59] [CAMERA] setupPreviewLayer - previewView.bounds: (0.0, 0.0, 440.0, 796.0), previewLayer.frame: (0.0, 0.0, 440.0, 796.0) [07:37:00] [CAMERA] Switched to continuous autofocus, lens position: 0.5294118 [07:37:04] [WS] WebSocket task completed with error - isQueryOnly=true: The request timed out. [07:37:04] [WS] Query connection error - cleaning up all agent connections and views [07:37:04] [CLEANUP] ======================================== [07:37:04] [CLEANUP] Cleaning up all agent connections and views [07:37:04] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [07:37:04] [CLEANUP] Stopped and removed 0 video connections [07:37:04] [CLEANUP] Removed 0 video views [07:37:04] [CLEANUP] Removed 0 feed scroll views [07:37:04] [CLEANUP] Removed 0 status labels [07:37:04] [CLEANUP] Reset agent query state [07:37:04] [CLEANUP] Updated page indicator [07:37:04] [CLEANUP] Rebuilt video layout [07:37:04] [CLEANUP] ✅ All agent connections and views cleaned up [07:37:04] [CLEANUP] ======================================== [07:37:04] [SERVER] Starting reconnect polling (5s interval) [07:37:06] [HAPTIC] triggerHapticFeedback called - mode: photo, isRecording: false [07:37:06] [HAPTIC] Triggering peek haptic for photo [07:37:06] [VOLUME] Stopping volume button monitoring [07:37:06] [GALLERY_DB] Loading ALL media messages for session: ILUIWU [07:37:06] [GALLERY_DB] Raw datesent for msg 19175: '2026-01-26 01:00:43' [07:37:06] [GALLERY_DB] Raw datesent for msg 19149: '2026-01-25 11:35:26' [07:37:06] [GALLERY_DB] Raw datesent for msg 19146: '2026-01-25 11:23:09' [07:37:06] [GALLERY_DB] ✅ Loaded 501 media messages [07:37:06] [GALLERY] Filtered 501 -> 461 (only with local thumbnails) [07:37:06] [GALLERY] First 5 after sort (newest first): [07:37:06] [GALLERY] 0: id=19175, date=2026-01-26 01:00:43, file=6bc3a9f1a52e9ae0.png [07:37:06] [GALLERY] 1: id=19149, date=2026-01-25 11:35:26, file=6490cf96bed7f640.jpeg [07:37:06] [GALLERY] 2: id=19146, date=2026-01-25 11:23:09, file=a6c858d97a01507d.jpeg [07:37:06] [GALLERY] 3: id=19145, date=2026-01-25 10:08:48, file=01fe690830ee5ba7.jpg [07:37:06] [GALLERY] 4: id=19137, date=2026-01-25 01:00:43, file=51aff08c0a58b833.png [07:37:09] [SERVER] Polling - attempting to reconnect... [07:37:12] Chosen timer = 0 [07:37:12] [MEDIA_SEND] ========== NEW UPLOAD ========== [07:37:12] [MEDIA_SEND] onSend called [07:37:12] [MEDIA_SEND] Source URL: /private/var/mobile/Containers/Data/Application/75035B73-3F30-4A91-A570-8F3EEDE21803/tmp/93C8725F-A89B-405B-91C7-2B68471B3DB6.jpg [07:37:12] [MEDIA_SEND] Source file exists: true [07:37:12] [MEDIA_SEND] Original filename: 93C8725F-A89B-405B-91C7-2B68471B3DB6.jpg [07:37:12] [MEDIA_SEND] Random filename: 5728ffa32c3fe2c6.jpg [07:37:12] [MEDIA_SEND] File extension: jpg [07:37:12] [MEDIA_SEND] Local media path: /var/mobile/Containers/Data/Application/75035B73-3F30-4A91-A570-8F3EEDE21803/Documents/MediaCache/5728ffa32c3fe2c6.jpg [07:37:12] [MEDIA_SEND] Local thumbnail path: /var/mobile/Containers/Data/Application/75035B73-3F30-4A91-A570-8F3EEDE21803/Documents/MediaCache/t_5728ffa32c3fe2c6.jpg [07:37:12] [MEDIA_SEND] Source file size: 276332 bytes (0.26 MB) [07:37:12] [MEDIA_SEND] Copying file (<100MB) [07:37:12] [MEDIA_SEND] File copied successfully [07:37:12] [MEDIA_SEND] Destination file exists: true [07:37:12] [MEDIA_SEND] Destination file size: 276332 bytes [07:37:12] [MEDIA_SEND] Creating thumbnail... [07:37:12] [MEDIA_SEND] Thumbnail created in 0.02s [07:37:12] [MEDIA_SEND] Thumbnail dimensions: (225.0, 400.0) [07:37:12] [MEDIA_SEND] Thumbnail exists: true [07:37:12] [MEDIA_SEND] Thumbnail file size: 8595 bytes [07:37:12] [MEDIA_SEND] Sending message to server... [07:37:12] [MEDIA_SEND] Caption: '' [07:37:12] [MEDIA_SEND] Timer: 0 [07:37:12] [MEDIA_SEND] Filename: 5728ffa32c3fe2c6.jpg [07:37:12] [MEDIA_FLOW] ⚠️ Message sent BEFORE upload starts - if app dies now, file won't be uploaded! [07:37:12] [SEND_MESSAGE] 📤 Sending message, currentMsgCount=50, isReloading=false [07:37:12] [MEDIA_SEND] 📤 Creating media message: id=-1, file=5728ffa32c3fe2c6.jpg, isGiphy=false, upload_status=1 (pending) [07:37:12] [MEDIA_SEND] 💾 Inserted to DB with upload_status=1 [07:37:12] [SEND_MESSAGE] ✅ Added optimistic message id=-1 to arrays, newMsgCount=51 [07:37:12] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[-1, 19177, 19176, 19175, 19174] [07:37:12] [REPLY_DEBUG] ❌ cancelReply called - clearing messageToReplyTo [07:37:12] [CELL_UPLOAD] configure: msgId=-1, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=1 [07:37:12] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=1 → pending [07:37:12] [CELL_UPLOAD] setUploadStatus(pending, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [07:37:12] [CELL_UPLOAD] → pending: overlay.isHidden=false, alpha=1.0 [07:37:12] [REPLY_DEBUG] ⚠️ sendMessage HTTP BODY - No reply message captured [07:37:12] [MEDIA_SEND] sendMessage API call completed [07:37:12] [MEDIA_SEND] Starting THUMBNAIL upload: t_5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_ENQUEUE] 📥 ========== ENQUEUE UPLOAD ========== [07:37:12] [UPLOAD_ENQUEUE] 📥 File: t_5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_ENQUEUE] 📥 Local path: /var/mobile/Containers/Data/Application/75035B73-3F30-4A91-A570-8F3EEDE21803/Documents/MediaCache/t_5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_ENQUEUE] 📥 Session: ILUIWU [07:37:12] [UPLOAD_ENQUEUE] 📥 File exists: true, size: 0.0 MB [07:37:12] [GALLERY_DB] Loading ALL media messages for session: ILUIWU [07:37:12] [UPLOAD_QUEUE] Enqueued upload id=663 for t_5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_DEBUG] ========== START UPLOAD ========== [07:37:12] [UPLOAD_DEBUG] Item ID: 663 [07:37:12] [UPLOAD_DEBUG] Local URL: /var/mobile/Containers/Data/Application/75035B73-3F30-4A91-A570-8F3EEDE21803/Documents/MediaCache/t_5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_DEBUG] Random filename: t_5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_DEBUG] Session ID: ILUIWU [07:37:12] [UPLOAD_DEBUG] API Base: https://crivello.dyndns.org:443/WebRTC/chat/ [07:37:12] [UPLOAD_DEBUG] Retry count: 0 [07:37:12] [UPLOAD_NOTIFY] 📣 Posting notification: file=t_5728ffa32c3fe2c6.jpg, status=uploading (2), progress=0.0% [07:37:12] [UPLOAD_DEBUG] File exists: true [07:37:12] [GALLERY_DB] Raw datesent for msg -1: '2026-01-26 06:37:12' [07:37:12] [GALLERY_DB] Raw datesent for msg 19175: '2026-01-26 01:00:43' [07:37:12] [UPLOAD_DEBUG] File size: 8595 bytes (0.0 MB) [07:37:12] [UPLOAD_DEBUG] Chunked threshold: 104857600 bytes (100 MB) [07:37:12] [UPLOAD_DEBUG] → Using STANDARD upload (file <= threshold) [07:37:12] [GALLERY_DB] Raw datesent for msg 19149: '2026-01-25 11:35:26' [07:37:12] [UPLOAD_DEBUG] --- startStandardUpload --- [07:37:12] [UPLOAD_DEBUG] Upload URL: https://crivello.dyndns.org:443/WebRTC/chat/upload_media.php [07:37:12] [UPLOAD_DEBUG] File extension: jpg, MIME type: image/jpeg [07:37:12] [UPLOAD_DEBUG] Temp file URL: /private/var/mobile/Containers/Data/Application/75035B73-3F30-4A91-A570-8F3EEDE21803/tmp/6B671107-0BFC-4F45-AE76-EF14B7AC2D88.upload [07:37:12] [UPLOAD_DEBUG] File size: 8595 bytes, in-memory threshold: 10485760 bytes [07:37:12] [UPLOAD_DEBUG] Creating multipart body (in-memory mode)... [07:37:12] [UPLOAD_DEBUG] ✓ In-memory body written to temp file (9077 bytes) [07:37:12] [UPLOAD_DEBUG] Creating background upload task... [07:37:12] [UPLOAD_DEBUG] Task created with identifier: 1 [07:37:12] [UPLOAD_DEBUG] Added to activeUploads dictionary [07:37:12] [UPLOAD_DEBUG] Updated DB status to 'uploading' [07:37:12] [UPLOAD_LIFECYCLE] 🚀 STARTED | task=1 | file=t_5728ffa32c3fe2c6.jpg | size=0.0MB | retries=0 [07:37:12] [UPLOAD_DEBUG] ✓ Task resumed - upload should be in progress now [07:37:12] [UPLOAD_DEBUG] ========== UPLOAD STARTED ========== [07:37:12] [UPLOAD_PROGRESS] t_5728ffa32c3fe2c6.jpg: 100% (0.0/0.0 MB) task=1 [07:37:12] [UPLOAD_NOTIFY] 📣 Posting notification: file=t_5728ffa32c3fe2c6.jpg, status=uploading (2), progress=100.0% [07:37:12] [CHAT] receive_message.php HTTP 200: {"ok":true,"message_id":19178,"session_id":"ILUIWU","message_type":1,"file_name":"5728ffa32c3fe2c6.jpg","datesent_utc":"2026-01-26 06:37:12"} [07:37:12] [CHAT] receive_message.php JSON: ["message_type": 1, "session_id": ILUIWU, "datesent_utc": 2026-01-26 06:37:12, "message_id": 19178, "file_name": 5728ffa32c3fe2c6.jpg, "ok": 1] [07:37:12] [DB_UPGRADE] Upgrading message ID: -1 → 19178, preserveOriginalDate=false [07:37:12] [UPLOAD_RESPONSE] Started receiving response for task 1 [07:37:12] [UPLOAD_METRICS] Task 1 metrics: [07:37:12] [UPLOAD_METRICS] Total time: 0.08s [07:37:12] [UPLOAD_METRICS] Upload time: 0.00s [07:37:12] [UPLOAD_METRICS] Response time: 0.00s [07:37:12] [UPLOAD_METRICS] Network protocol: http/1.1 [07:37:12] [UPLOAD_METRICS] Proxy: no [07:37:12] [UPLOAD_METRICS] Reused connection: no [07:37:12] [UPLOAD_COMPLETE] ========== Task Completed ========== [07:37:12] [UPLOAD_COMPLETE] Task ID: 1 [07:37:12] [UPLOAD_COMPLETE] Task state: 3 (0=running, 1=suspended, 2=canceling, 3=completed) [07:37:12] [UPLOAD_COMPLETE] Filename: t_5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_COMPLETE] Local path: /var/mobile/Containers/Data/Application/75035B73-3F30-4A91-A570-8F3EEDE21803/Documents/MediaCache/t_5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_COMPLETE] Retry count: 0 [07:37:12] [UPLOAD_COMPLETE] HTTP Status: 200 [07:37:12] [UPLOAD_COMPLETE] Response headers: [AnyHashable("Content-Length"): 215, AnyHashable("Content-Type"): application/json, AnyHashable("Date"): Mon, 26 Jan 2026 06:37:12 GMT, AnyHashable("Connection"): Keep-Alive, AnyHashable("Keep-Alive"): timeout=5, max=100, AnyHashable("Server"): Apache/2.4.65 (Debian)] [07:37:12] [UPLOAD_COMPLETE] Response body (215 bytes): {"ok":true,"file_name":"t_5728ffa32c3fe2c6.jpg","orig_name":"t_5728ffa32c3fe2c6.jpg","size":8595,"env":{"file_uploads":"1","upload_max_filesize":"5G","post_max_size":"10G","upload_tmp_dir":"","content_length":9077}} [07:37:12] [UPLOAD_COMPLETE] ✅ Server confirmed upload OK [07:37:12] [UPLOAD_COMPLETE] Server filename: t_5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_VERIFY] Verifying file exists: t_5728ffa32c3fe2c6.jpg [07:37:12] [GALLERY_DB] ✅ Loaded 502 media messages [07:37:12] [DB_UPGRADE] ✅ Upgraded -1 → 19178 with send_status=0, 1 row(s) affected [07:37:12] [UPLOAD_VERIFY] ✅ File verified: t_5728ffa32c3fe2c6.jpg (size: 8595) [07:37:12] [UPLOAD_LIFECYCLE] ✅ COMPLETED | file=t_5728ffa32c3fe2c6.jpg | id=663 | retries=0 [07:37:12] [UPLOAD_COMPLETE] ✅ ========== UPLOAD COMPLETED ========== [07:37:12] [UPLOAD_COMPLETE] ✅ File: t_5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_COMPLETE] ✅ Queue ID: 663 [07:37:12] [UPLOAD_COMPLETE] ✅ Session: ILUIWU [07:37:12] [UPLOAD_COMPLETE] ✅ Server filename: t_5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_COMPLETE] ✅ Posting .complete status notification [07:37:12] [UPLOAD_NOTIFY] 📣 Posting notification: file=t_5728ffa32c3fe2c6.jpg, status=complete (0), progress=0.0% [07:37:12] [UPLOAD_COMPLETE] ✅ Upload queue DB updated to 'completed' for id=663 [07:37:12] [GALLERY] Filtered 502 -> 462 (only with local thumbnails) [07:37:12] [GALLERY] First 5 after sort (newest first): [07:37:12] [GALLERY] 0: id=-1, date=2026-01-26 06:37:12, file=5728ffa32c3fe2c6.jpg [07:37:12] [GALLERY] 1: id=19175, date=2026-01-26 01:00:43, file=6bc3a9f1a52e9ae0.png [07:37:12] [GALLERY] 2: id=19149, date=2026-01-25 11:35:26, file=6490cf96bed7f640.jpeg [07:37:12] [GALLERY] 3: id=19146, date=2026-01-25 11:23:09, file=a6c858d97a01507d.jpeg [07:37:12] [GALLERY] 4: id=19145, date=2026-01-25 10:08:48, file=01fe690830ee5ba7.jpg [07:37:12] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [07:37:12] [CELL_UPLOAD] → not my message, setting complete [07:37:12] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:37:12] [UPLOAD_STATUS] 📬 Received notification: file=t_5728ffa32c3fe2c6.jpg, status=2 (uploading) [07:37:12] [UPLOAD_STATUS] ⚠️ File not found in memory arrays: t_5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_STATUS] 💾 Updating DB: file=t_5728ffa32c3fe2c6.jpg, status=2 (uploading) [07:37:12] [UPLOAD_STATUS] ⚠️ DB update: 0 rows affected - file=t_5728ffa32c3fe2c6.jpg not found in local_messages [07:37:12] [UPLOAD_STATUS] 📬 Received notification: file=t_5728ffa32c3fe2c6.jpg, status=2 (uploading) [07:37:12] [UPLOAD_STATUS] ⚠️ File not found in memory arrays: t_5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_STATUS] 💾 Updating DB: file=t_5728ffa32c3fe2c6.jpg, status=2 (uploading) [07:37:12] [UPLOAD_STATUS] ⚠️ DB update: 0 rows affected - file=t_5728ffa32c3fe2c6.jpg not found in local_messages [07:37:12] [CLIENT_SIG] Event received: type=0 messageId=19178 [07:37:12] [WS_EVENT] Received event: type=0, messageId=19178 [07:37:12] [WS_EVENT] 📨 New message notification (msgId=19178) - triggering incremental refresh, currentMsgCount=51 [07:37:12] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=51 [07:37:12] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19178 [07:37:12] [SEND_UPGRADE] ✅ Updated chatMessages[0].id: -1 → 19178 [07:37:12] [SEND_UPGRADE] ✅ Updated allMessagesWithReadBy[0].id: -1 → 19178 [07:37:12] ReloadData 9 [07:37:12] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [07:37:12] [CELL_UPLOAD] → not my message, setting complete [07:37:12] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [07:37:12] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=1 [07:37:12] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=1 → pending [07:37:12] [CELL_UPLOAD] setUploadStatus(pending, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [07:37:12] [CELL_UPLOAD] → pending: overlay.isHidden=false, alpha=1.0 [07:37:12] [UPLOAD_STATUS] 📬 Received notification: file=t_5728ffa32c3fe2c6.jpg, status=0 (complete) [07:37:12] [UPLOAD_STATUS] ⚠️ File not found in memory arrays: t_5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_STATUS] 💾 Updating DB: file=t_5728ffa32c3fe2c6.jpg, status=0 (complete) [07:37:12] [UPLOAD_STATUS] ⚠️ DB update: 0 rows affected - file=t_5728ffa32c3fe2c6.jpg not found in local_messages [07:37:12] [INCREMENTAL_SYNC] ✅ No new messages [07:37:12] [MEDIA_SEND] Thumbnail uploaded successfully in 0.21s [07:37:12] [MEDIA_SEND] Thumbnail server filename: t_5728ffa32c3fe2c6.jpg [07:37:12] [MEDIA_SEND] Starting MAIN FILE upload: 5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_ENQUEUE] 📥 ========== ENQUEUE UPLOAD ========== [07:37:12] [UPLOAD_ENQUEUE] 📥 File: 5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_ENQUEUE] 📥 Local path: /var/mobile/Containers/Data/Application/75035B73-3F30-4A91-A570-8F3EEDE21803/Documents/MediaCache/5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_ENQUEUE] 📥 Session: ILUIWU [07:37:12] [UPLOAD_ENQUEUE] 📥 File exists: true, size: 0.3 MB [07:37:12] [WS_EVENT] ✅ Incremental refresh complete, newMsgCount=51 [07:37:12] [UPLOAD_QUEUE] Enqueued upload id=664 for 5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_DEBUG] ========== START UPLOAD ========== [07:37:12] [UPLOAD_DEBUG] Item ID: 664 [07:37:12] [UPLOAD_DEBUG] Local URL: /var/mobile/Containers/Data/Application/75035B73-3F30-4A91-A570-8F3EEDE21803/Documents/MediaCache/5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_DEBUG] Random filename: 5728ffa32c3fe2c6.jpg [07:37:12] [UPLOAD_DEBUG] Session ID: ILUIWU [07:37:12] [UPLOAD_DEBUG] API Base: https://crivello.dyndns.org:443/WebRTC/chat/ [07:37:12] [UPLOAD_DEBUG] Retry count: 0 [07:37:12] [UPLOAD_NOTIFY] 📣 Posting notification: file=5728ffa32c3fe2c6.jpg, status=uploading (2), progress=0.0% [07:37:12] [UPLOAD_STATUS] 📬 Received notification: file=5728ffa32c3fe2c6.jpg, status=2 (uploading) [07:37:12] [UPLOAD_STATUS] 📝 Updated allMessagesWithReadBy[0]: 1 → 2 [07:37:12] [UPLOAD_STATUS] 📝 Updated chatMessages[0]: status=2 [07:37:12] [UPLOAD_STATUS] 💾 Updating DB: file=5728ffa32c3fe2c6.jpg, status=2 (uploading) [07:37:12] [UPLOAD_DEBUG] File exists: true [07:37:12] [UPLOAD_DEBUG] File size: 276332 bytes (0.3 MB) [07:37:12] [UPLOAD_DEBUG] Chunked threshold: 104857600 bytes (100 MB) [07:37:12] [UPLOAD_DEBUG] → Using STANDARD upload (file <= threshold) [07:37:12] [UPLOAD_DEBUG] --- startStandardUpload --- [07:37:12] [UPLOAD_DEBUG] Upload URL: https://crivello.dyndns.org:443/WebRTC/chat/upload_media.php [07:37:12] [UPLOAD_DEBUG] File extension: jpg, MIME type: image/jpeg [07:37:12] [UPLOAD_DEBUG] Temp file URL: /private/var/mobile/Containers/Data/Application/75035B73-3F30-4A91-A570-8F3EEDE21803/tmp/1C88D7EC-8C7A-4712-94C0-3737BEC24348.upload [07:37:12] [UPLOAD_STATUS] ✅ DB updated: 1 row(s) affected for file=5728ffa32c3fe2c6.jpg [07:37:12] [CELL_UPLOAD] setUploadStatus(uploading, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [07:37:12] [CELL_UPLOAD] → uploading: circularProgress visible, overlay.isHidden=false [07:37:12] [UPLOAD_DEBUG] File size: 276332 bytes, in-memory threshold: 10485760 bytes [07:37:12] [UPLOAD_DEBUG] Creating multipart body (in-memory mode)... [07:37:12] [UPLOAD_DEBUG] ✓ In-memory body written to temp file (276808 bytes) [07:37:12] [UPLOAD_DEBUG] Creating background upload task... [07:37:12] [UPLOAD_DEBUG] Task created with identifier: 2 [07:37:12] [UPLOAD_DEBUG] Added to activeUploads dictionary [07:37:12] [UPLOAD_DEBUG] Updated DB status to 'uploading' [07:37:12] [UPLOAD_LIFECYCLE] 🚀 STARTED | task=2 | file=5728ffa32c3fe2c6.jpg | size=0.3MB | retries=0 [07:37:12] [UPLOAD_DEBUG] ✓ Task resumed - upload should be in progress now [07:37:12] [UPLOAD_DEBUG] ========== UPLOAD STARTED ========== [07:37:12] [UPLOAD_PROGRESS] 5728ffa32c3fe2c6.jpg: 100% (0.3/0.3 MB) task=2 [07:37:12] [UPLOAD_NOTIFY] 📣 Posting notification: file=5728ffa32c3fe2c6.jpg, status=uploading (2), progress=100.0% [07:37:12] [UPLOAD_STATUS] 📬 Received notification: file=5728ffa32c3fe2c6.jpg, status=2 (uploading) [07:37:12] [UPLOAD_STATUS] 📝 Updated allMessagesWithReadBy[0]: 2 → 2 [07:37:12] [UPLOAD_STATUS] 📝 Updated chatMessages[0]: status=2 [07:37:12] [UPLOAD_STATUS] 💾 Updating DB: file=5728ffa32c3fe2c6.jpg, status=2 (uploading) [07:37:12] [UPLOAD_STATUS] ✅ DB updated: 1 row(s) affected for file=5728ffa32c3fe2c6.jpg [07:37:12] [MEDIA_SEND] Main upload progress: 100% [07:37:12] [CELL_UPLOAD] setUploadStatus(uploading, progress=1.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [07:37:12] [CELL_UPLOAD] → uploading: circularProgress visible, overlay.isHidden=false [07:37:12] [PROGRESS] Updated cell for 5728ffa32c3fe2c6.jpg: 100% [07:37:14] [SERVER] Polling - attempting to reconnect... [07:37:15] [UPLOAD_RESPONSE] Started receiving response for task 2 [07:37:15] [UPLOAD_METRICS] Task 2 metrics: [07:37:15] [UPLOAD_METRICS] Total time: 2.09s [07:37:15] [UPLOAD_METRICS] Upload time: 0.10s [07:37:15] [UPLOAD_METRICS] Response time: 0.00s [07:37:15] [UPLOAD_METRICS] Network protocol: http/1.1 [07:37:15] [UPLOAD_METRICS] Proxy: no [07:37:15] [UPLOAD_METRICS] Reused connection: yes [07:37:15] [UPLOAD_COMPLETE] ========== Task Completed ========== [07:37:15] [UPLOAD_COMPLETE] Task ID: 2 [07:37:15] [UPLOAD_COMPLETE] Task state: 3 (0=running, 1=suspended, 2=canceling, 3=completed) [07:37:15] [UPLOAD_COMPLETE] Filename: 5728ffa32c3fe2c6.jpg [07:37:15] [UPLOAD_COMPLETE] Local path: /var/mobile/Containers/Data/Application/75035B73-3F30-4A91-A570-8F3EEDE21803/Documents/MediaCache/5728ffa32c3fe2c6.jpg [07:37:15] [UPLOAD_COMPLETE] Retry count: 0 [07:37:15] [UPLOAD_COMPLETE] HTTP Status: 200 [07:37:15] [UPLOAD_COMPLETE] Response headers: [AnyHashable("Content-Type"): application/json, AnyHashable("Server"): Apache/2.4.65 (Debian), AnyHashable("Keep-Alive"): timeout=5, max=99, AnyHashable("Content-Length"): 215, AnyHashable("Connection"): Keep-Alive, AnyHashable("Date"): Mon, 26 Jan 2026 06:37:12 GMT] [07:37:15] [UPLOAD_COMPLETE] Response body (215 bytes): {"ok":true,"file_name":"5728ffa32c3fe2c6.jpg","orig_name":"5728ffa32c3fe2c6.jpg","size":276332,"env":{"file_uploads":"1","upload_max_filesize":"5G","post_max_size":"10G","upload_tmp_dir":"","content_length":276808}} [07:37:15] [UPLOAD_COMPLETE] ✅ Server confirmed upload OK [07:37:15] [UPLOAD_COMPLETE] Server filename: 5728ffa32c3fe2c6.jpg [07:37:15] [UPLOAD_VERIFY] Verifying file exists: 5728ffa32c3fe2c6.jpg [07:37:15] [UPLOAD_VERIFY] ✅ File verified: 5728ffa32c3fe2c6.jpg (size: 276332) [07:37:15] [UPLOAD_LIFECYCLE] ✅ COMPLETED | file=5728ffa32c3fe2c6.jpg | id=664 | retries=0 [07:37:15] [UPLOAD_COMPLETE] ✅ ========== UPLOAD COMPLETED ========== [07:37:15] [UPLOAD_COMPLETE] ✅ File: 5728ffa32c3fe2c6.jpg [07:37:15] [UPLOAD_COMPLETE] ✅ Queue ID: 664 [07:37:15] [UPLOAD_COMPLETE] ✅ Session: ILUIWU [07:37:15] [UPLOAD_COMPLETE] ✅ Server filename: 5728ffa32c3fe2c6.jpg [07:37:15] [UPLOAD_COMPLETE] ✅ Posting .complete status notification [07:37:15] [UPLOAD_NOTIFY] 📣 Posting notification: file=5728ffa32c3fe2c6.jpg, status=complete (0), progress=0.0% [07:37:15] [UPLOAD_STATUS] 📬 Received notification: file=5728ffa32c3fe2c6.jpg, status=0 (complete) [07:37:15] [UPLOAD_STATUS] 📝 Updated allMessagesWithReadBy[0]: 2 → 0 [07:37:15] [UPLOAD_STATUS] 📝 Updated chatMessages[0]: status=0 [07:37:15] [UPLOAD_STATUS] 💾 Updating DB: file=5728ffa32c3fe2c6.jpg, status=0 (complete) [07:37:15] [UPLOAD_COMPLETE] ✅ Upload queue DB updated to 'completed' for id=664 [07:37:15] [UPLOAD_STATUS] ✅ DB updated: 1 row(s) affected for file=5728ffa32c3fe2c6.jpg [07:37:15] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [07:37:15] [MEDIA_SEND] MAIN FILE UPLOADED SUCCESSFULLY [07:37:15] [MEDIA_SEND] Server filename: 5728ffa32c3fe2c6.jpg [07:37:15] [MEDIA_SEND] Main upload duration: 2.12s [07:37:15] [MEDIA_SEND] Total upload duration: 2.33s [07:37:15] [MEDIA_SEND] ========== UPLOAD COMPLETE ========== [07:37:15] [PROGRESS] Updated cell for 5728ffa32c3fe2c6.jpg: 100% [07:37:17] [LOCK] Lock button tapped - locking app immediately [07:37:17] [LOCK] Received lock app notification [07:37:18] [LIFECYCLE] App resigning active - cleared crash flag [07:37:19] [SECURITY] sceneDidEnterBackground - isAuthenticated=false [07:37:19] [SECURITY] ⚠️ NOT saving timestamp - isAuthenticated is false [07:37:19] [LIFECYCLE] App entering background - cleared crash flag [07:37:19] [CLIENT_SIG] Disconnecting [07:37:19] [LIFECYCLE] App entering background - disconnecting connections and stopping audio [07:37:19] [WS] stopSignalingAndPeer called - isQueryOnly=true, connectionStr=iosILUIWU, wsState=3 [07:37:19] [WS] Canceling WebSocket for query connection to iosILUIWU [07:37:19] In cleanupPeer [07:37:19] In cleanupPeer [07:37:19] [LIFECYCLE] WebRTC audio disabled [07:37:19] [LIFECYCLE] AVAudioSession deactivated [07:37:19] [LIFECYCLE] All connections stopped [07:37:19] [CLIENT_SIG] WebSocket closed with code 1001 [07:37:19] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1) [07:37:19] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=http://crivello.dyndns.org:8081/, NSErrorFailingURLKey=http://crivello.dyndns.org:8081/} [07:37:19] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2) [07:37:19] [SERVER] Stopped reconnect polling [07:37:19] [WS] URLSession invalidated successfully [07:37:19] Will request stop of video 0 [07:37:19] Will request stop of video 0 [07:37:19] [PIP] Removing 0 tracks from PiP for connection 0 [07:37:19] [PIP] ✅ All tracks removed for connection 0 [07:37:19] [PIP] Removing 0 tracks from PiP for connection 0 [07:37:19] [PIP] ✅ All tracks removed for connection 0 [08:00:32] [NETWORK] Status changed: connected [08:00:32] [CLIENT_SIG] Connecting to session ILUIWU as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [08:00:32] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU [08:00:32] [CLIENT_SIG] Already connected/connecting to session ILUIWU [08:00:32] [LIFECYCLE] App entering foreground - restoring connections [08:00:32] [LIFECYCLE] Away > 2 minutes (1393s) - will scroll to bottom [08:00:32] [UPLOAD_RETRY] No pending uploads to retry [08:00:32] [LIFECYCLE] Merged 972 reactions from local DB [08:00:32] [LIFECYCLE] WebRTC audio re-enabled [08:00:32] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone) [08:00:32] [CLIENT_SIG] Setting up client signaling for session: ILUIWU [08:00:32] [CLIENT_SIG] Already connected/connecting to session ILUIWU [08:00:32] [VIEWER] Reconnecting after background - querying agents [08:00:32] [UNSENT_RETRY] Checking for unsent messages... [08:00:32] [PENDING_UPLOAD] Total pending upload messages: 0 [08:00:32] [UNSENT_RETRY] No unsent messages found [08:00:32] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[19178, 19177, 19176, 19175, 19174] [08:00:32] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:00:32] [CELL_UPLOAD] → not my message, setting complete [08:00:32] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:00:32] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:00:32] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:00:32] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:00:32] [SECURITY] sceneDidBecomeActive - isAuthenticated=false, didEnterBackground=false [08:00:32] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow [08:00:32] [PUSH] handlePollEventsNotification userInfo: [:] [08:00:32] [PUSH] No message_id in userInfo [08:00:32] [PUSH] No operation_type in userInfo [08:00:32] [FAST_REFRESH] Evolution disabled - performing incremental sync [08:00:32] [FAST_REFRESH] Already have 51 messages - skipping local DB load [08:00:32] [FAST_REFRESH] About to call reloadMessagesForCurrentTab(), isMainThread=true, viewLoaded=true [08:00:32] [FAST_REFRESH] reloadMessagesForCurrentTab() called successfully [08:00:32] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=51 [08:00:32] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19178 [08:00:32] [CLIENT_SIG] WebSocket opened [08:00:32] [CLIENT_SIG] HELLO sent as client for session ILUIWU [08:00:32] [CLIENT_SIG] Connected! clientId=JpvGJlZQm6xW0XQd [08:00:32] [CLIENT_SIG] Received 1 clients for session 'ILUIWU' (my session: 'ILUIWU') [08:00:32] [CLIENT_SIG] - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [08:00:32] [INCREMENTAL_SYNC] ✅ No new messages [08:00:32] [FAST_REFRESH] Incremental sync complete - 51 messages [08:00:32] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[19178, 19177, 19176, 19175, 19174] [08:00:32] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:00:32] [CELL_UPLOAD] → not my message, setting complete [08:00:32] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:00:32] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:00:32] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:00:32] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:00:33] [COMBINED_FETCH] Loaded 7940 read receipts, 974 messages with reactions [08:00:33] [FOREGROUND] Enriched 0 messages with readBy data from server [08:00:33] [COMBINED_FETCH] Loaded 7940 read receipts, 974 messages with reactions [08:00:33] [FAST_REFRESH] Enriched 51 messages with readBy data [08:00:33] [RELOAD_TAB] ⏳ Already pending, waiting for debounce [08:00:33] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[19178, 19177, 19176, 19175, 19174] [08:00:33] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:00:33] [CELL_UPLOAD] → not my message, setting complete [08:00:33] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:00:33] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:00:33] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:00:33] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:00:33] [PIN_AUTH] Correct PIN [08:00:33] [SECURITY] Restored real session: ILUIWU [08:00:33] [SECURITY] Restored real session: ILUIWU [08:00:33] [LOCK] ✅ PIN auth callback - setting isAuthenticated = true [08:00:33] [AUTH] Authentication completed - updating UI only (data already fetched in foreground handler) [08:00:33] [AUTH] UI update complete [08:00:33] [FAKE MODE] Exiting fake mode, restoring real session [08:00:33] [SECURITY] Restored real session: ILUIWU [08:00:33] [SECURITY] Saved real session: ILUIWU [08:00:33] [FAKE MODE] ✅ Restored real session: ILUIWU [08:00:33] [FAKE MODE] Loaded 50 messages (limited to page size) [08:00:34] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":0,"removed_from_other_channels":0} [08:00:34] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [08:00:34] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:00:34] [CELL_UPLOAD] → not my message, setting complete [08:00:34] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:00:34] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:00:34] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:00:34] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:00:34] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19128, 19129, 19130, 19131, 19133] [08:00:34] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:00:34] [CELL_UPLOAD] → not my message, setting complete [08:00:34] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:00:34] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:00:34] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:00:34] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:00:34] [USER] ✅ User registered successfully [08:00:34] [PUSH] User registration after token update: success [08:00:34] [COMBINED_FETCH] Loaded 7940 read receipts, 974 messages with reactions [08:00:34] [FAKE MODE] Enriched 50 messages with readBy data [08:00:34] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19128, 19129, 19130, 19131, 19133] [08:00:34] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:00:34] [CELL_UPLOAD] → not my message, setting complete [08:00:34] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:00:34] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:00:34] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:00:34] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:00:38] [LIFECYCLE] App resigning active - cleared crash flag [08:00:39] [SECURITY] sceneDidEnterBackground - isAuthenticated=true [08:00:39] [SECURITY] Saved background timestamp [08:00:39] [LIFECYCLE] App entering background - cleared crash flag [08:00:39] [CLIENT_SIG] Disconnecting [08:00:39] [LIFECYCLE] App entering background - disconnecting connections and stopping audio [08:00:39] [WS] stopSignalingAndPeer called - isQueryOnly=true, connectionStr=iosILUIWU, wsState=-1 [08:00:39] In cleanupPeer [08:00:39] In cleanupPeer [08:00:39] [LIFECYCLE] WebRTC audio disabled [08:00:39] [LIFECYCLE] AVAudioSession deactivated [08:00:39] [LIFECYCLE] All connections stopped [08:00:39] [CLIENT_SIG] WebSocket closed with code 1001 [08:00:39] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1) [08:00:39] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=http://crivello.dyndns.org:8081/, NSErrorFailingURLKey=http://crivello.dyndns.org:8081/} [08:00:39] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2) [08:00:39] [SERVER] Stopped reconnect polling [08:00:39] Will request stop of video 0 [08:00:39] Will request stop of video 0 [08:00:39] [PIP] Removing 0 tracks from PiP for connection 0 [08:00:39] [PIP] ✅ All tracks removed for connection 0 [08:00:39] [PIP] Removing 0 tracks from PiP for connection 0 [08:00:39] [PIP] ✅ All tracks removed for connection 0 [08:22:33] [SECURITY] Timeout check: elapsed=1313.8464848995209s, timeout=300.0s [08:22:33] [SECURITY] sceneWillEnterForeground - timeout exceeded, showing lock screen immediately [08:22:33] [AUTH] ✅ All guards passed, showing privacy cover [08:22:33] [LIFECYCLE] App entering foreground - restoring connections [08:22:33] [LIFECYCLE] Away > 2 minutes (1313s) - will scroll to bottom [08:22:33] [UPLOAD_RETRY] No pending uploads to retry [08:22:33] [LIFECYCLE] Merged 972 reactions from local DB [08:22:33] [LIFECYCLE] WebRTC audio re-enabled [08:22:33] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone) [08:22:33] [CLIENT_SIG] Setting up client signaling for session: ILUIWU [08:22:33] [CLIENT_SIG] Connecting to session ILUIWU as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [08:22:33] [VIEWER] Reconnecting after background - querying agents [08:22:33] [UNSENT_RETRY] Checking for unsent messages... [08:22:33] [PENDING_UPLOAD] Total pending upload messages: 0 [08:22:33] [UNSENT_RETRY] No unsent messages found [08:22:33] [CLIENT_SIG] Already connected/connecting to session ILUIWU [08:22:33] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19128, 19129, 19130, 19131, 19133] [08:22:33] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:22:33] [CELL_UPLOAD] → not my message, setting complete [08:22:33] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:22:33] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:22:33] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:22:33] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:22:33] [SECURITY] sceneDidBecomeActive - isAuthenticated=false, didEnterBackground=false [08:22:33] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow [08:22:33] [PUSH] handlePollEventsNotification userInfo: [:] [08:22:33] [PUSH] No message_id in userInfo [08:22:33] [PUSH] No operation_type in userInfo [08:22:33] [FAST_REFRESH] Evolution disabled - performing incremental sync [08:22:33] [FAST_REFRESH] Already have 50 messages - skipping local DB load [08:22:33] [FAST_REFRESH] About to call reloadMessagesForCurrentTab(), isMainThread=true, viewLoaded=true [08:22:33] [FAST_REFRESH] reloadMessagesForCurrentTab() called successfully [08:22:33] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=50 [08:22:33] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19178 [08:22:33] [INCREMENTAL_SYNC] ✅ No new messages [08:22:33] [FAST_REFRESH] Incremental sync complete - 50 messages [08:22:33] [CLIENT_SIG] WebSocket opened [08:22:33] [CLIENT_SIG] HELLO sent as client for session ILUIWU [08:22:33] [CLIENT_SIG] Connected! clientId=fnCsIb2xwJzrFvBu [08:22:33] [CLIENT_SIG] Received 1 clients for session 'ILUIWU' (my session: 'ILUIWU') [08:22:33] [CLIENT_SIG] - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [08:22:33] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19128, 19129, 19130, 19131, 19133] [08:22:33] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:22:33] [CELL_UPLOAD] → not my message, setting complete [08:22:33] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:22:33] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:22:33] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:22:33] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:22:33] [COMBINED_FETCH] Loaded 7940 read receipts, 974 messages with reactions [08:22:33] [FOREGROUND] Enriched 0 messages with readBy data from server [08:22:34] [COMBINED_FETCH] Loaded 7940 read receipts, 974 messages with reactions [08:22:34] [FAST_REFRESH] Enriched 50 messages with readBy data [08:22:34] [RELOAD_TAB] ⏳ Already pending, waiting for debounce [08:22:34] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19128, 19129, 19130, 19131, 19133] [08:22:34] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:22:34] [CELL_UPLOAD] → not my message, setting complete [08:22:34] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:22:34] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:22:34] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:22:34] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:22:34] [PIN_AUTH] Correct PIN [08:22:34] [SECURITY] Restored real session: ILUIWU [08:22:34] [SECURITY] Restored real session: ILUIWU [08:22:34] [AUTH] Authentication completed - updating UI only (data already fetched in foreground handler) [08:22:34] [AUTH] UI update complete [08:22:34] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU [08:22:34] [CLIENT_SIG] Already connected/connecting to session ILUIWU [08:22:34] [FAKE MODE] Exiting fake mode, restoring real session [08:22:34] [SECURITY] Restored real session: ILUIWU [08:22:34] [SECURITY] Saved real session: ILUIWU [08:22:34] [FAKE MODE] ✅ Restored real session: ILUIWU [08:22:34] [FAKE MODE] Loaded 50 messages (limited to page size) [08:22:34] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:22:34] [CELL_UPLOAD] → not my message, setting complete [08:22:34] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:22:34] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:22:34] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:22:34] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:22:34] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":0,"removed_from_other_channels":0} [08:22:34] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [08:22:34] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19128, 19129, 19130, 19131, 19133] [08:22:34] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:22:34] [CELL_UPLOAD] → not my message, setting complete [08:22:34] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:22:34] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:22:34] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:22:34] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:22:35] [USER] ✅ User registered successfully [08:22:35] [PUSH] User registration after token update: success [08:22:35] [COMBINED_FETCH] Loaded 7940 read receipts, 974 messages with reactions [08:22:35] [FAKE MODE] Enriched 50 messages with readBy data [08:22:35] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19128, 19129, 19130, 19131, 19133] [08:22:35] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:22:35] [CELL_UPLOAD] → not my message, setting complete [08:22:35] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:22:35] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:22:35] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:22:35] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:22:56] [REPLY_DEBUG] 📤 didTapSend - Sending message WITHOUT reply [08:22:56] [SEND_MESSAGE] 📤 Sending message, currentMsgCount=50, isReloading=false [08:22:56] [SEND_MESSAGE] ✅ Added optimistic message id=-2 to arrays, newMsgCount=51 [08:22:56] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[-2, 19178, 19177, 19176, 19175] [08:22:56] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:22:56] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:22:56] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:22:56] [REPLY_DEBUG] ❌ cancelReply called - clearing messageToReplyTo [08:22:56] [REPLY_DEBUG] ⚠️ sendMessage HTTP BODY - No reply message captured [08:22:56] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:22:56] [CELL_UPLOAD] → not my message, setting complete [08:22:56] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:22:57] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:22:57] [CELL_UPLOAD] → not my message, setting complete [08:22:57] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:22:57] [LOCK] Lock button tapped - locking app immediately [08:22:57] [LOCK] Received lock app notification [08:22:57] [LIFECYCLE] App resigning active - cleared crash flag [08:22:58] [SECURITY] sceneDidEnterBackground - isAuthenticated=false [08:22:58] [SECURITY] ⚠️ NOT saving timestamp - isAuthenticated is false [08:22:58] [LIFECYCLE] App entering background - cleared crash flag [08:22:58] [CLIENT_SIG] Disconnecting [08:22:58] [LIFECYCLE] App entering background - disconnecting connections and stopping audio [08:22:58] [WS] stopSignalingAndPeer called - isQueryOnly=true, connectionStr=iosILUIWU, wsState=-1 [08:22:58] In cleanupPeer [08:22:58] In cleanupPeer [08:22:58] [LIFECYCLE] WebRTC audio disabled [08:22:58] [LIFECYCLE] AVAudioSession deactivated [08:22:58] [LIFECYCLE] All connections stopped [08:22:58] [CHAT] receive_message.php HTTP 200: {"ok":true,"message_id":19179,"session_id":"ILUIWU","message_type":0,"file_name":"","datesent_utc":"2026-01-26 07:22:56"} [08:22:58] [CHAT] receive_message.php JSON: ["message_type": 0, "file_name": , "datesent_utc": 2026-01-26 07:22:56, "message_id": 19179, "ok": 1, "session_id": ILUIWU] [08:22:58] [DB_UPGRADE] Upgrading message ID: -2 → 19179, preserveOriginalDate=false [08:22:58] [DB_UPGRADE] ✅ Upgraded -2 → 19179 with send_status=0, 1 row(s) affected [08:22:58] [CLIENT_SIG] WebSocket closed with code 1001 [08:22:58] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1) [08:22:58] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=http://crivello.dyndns.org:8081/, NSErrorFailingURLKey=http://crivello.dyndns.org:8081/} [08:22:58] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2) [08:22:58] [SERVER] Stopped reconnect polling [08:22:58] Will request stop of video 0 [08:22:58] Will request stop of video 0 [08:22:58] [SEND_UPGRADE] ✅ Updated chatMessages[0].id: -2 → 19179 [08:22:58] [SEND_UPGRADE] ✅ Updated allMessagesWithReadBy[0].id: -2 → 19179 [08:22:58] ReloadData 9 [08:22:58] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:22:58] [CELL_UPLOAD] → not my message, setting complete [08:22:58] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:22:58] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:22:58] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:22:58] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:22:58] [PIP] Removing 0 tracks from PiP for connection 0 [08:22:58] [PIP] ✅ All tracks removed for connection 0 [08:22:58] [PIP] Removing 0 tracks from PiP for connection 0 [08:22:58] [PIP] ✅ All tracks removed for connection 0 [08:28:14] [CLIENT_SIG] Connecting to session ILUIWU as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [08:28:14] [PUSH] Notification tapped - session_id: ILUIWU [08:28:14] [PUSH] Max message_id before tap: 19179 [08:28:14] [PUSH] Stored pending session: ILUIWU [08:28:14] [PUSH_EMBED] 📩 Received embedded message: id=19181, type=0, sender=Esra [08:28:14] [PUSH_EMBED] ✅ Saved message 19181 to local DB (sync) [08:28:14] [PUSH_EMBED] Created new cache with embedded message 19181 [08:28:14] [PUSH_EMBED] Fetching evolution data for message 19181 in background [08:28:14] [PUSH_EMBED] ✅ Fully processed message 19181 [08:28:14] [PUSH] Embedded message handled instantly on tap [08:28:14] [PUSH] Fetching server messages since_id=19179 to catch coalesced notifications on tap [08:28:14] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU [08:28:14] [CLIENT_SIG] Already connected/connecting to session ILUIWU [08:28:14] [PUSH_PRELOAD] Fetching up to 50 messages since_id=19179 to catch coalesced notifications [08:28:14] [PUSH_PRELOAD] Fetching messages for instant display cache [08:28:14] [LIFECYCLE] App entering foreground - restoring connections [08:28:14] [LIFECYCLE] Away > 2 minutes (315s) - will scroll to bottom [08:28:14] [UPLOAD_RETRY] No pending uploads to retry [08:28:14] [LIFECYCLE] Merged 972 reactions from local DB [08:28:14] [LIFECYCLE] WebRTC audio re-enabled [08:28:14] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone) [08:28:14] [CLIENT_SIG] Setting up client signaling for session: ILUIWU [08:28:14] [CLIENT_SIG] Already connected/connecting to session ILUIWU [08:28:14] [VIEWER] Reconnecting after background - querying agents [08:28:14] [UNSENT_RETRY] Checking for unsent messages... [08:28:14] [PENDING_UPLOAD] Total pending upload messages: 0 [08:28:14] [UNSENT_RETRY] No unsent messages found [08:28:14] [PUSH_UI] 🔔 handlePushMessageReceived CALLED [08:28:14] [PUSH_UI_BLACKOUT] blackoutView=false, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, type=0 [08:28:14] [PUSH_UI] Inserted message 19181 into UI (now 52 messages) [08:28:14] [RELOAD_TAB] ⏳ Already pending, waiting for debounce [08:28:14] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[19181, 19179, 19178, 19177, 19176] [08:28:14] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:14] [CELL_UPLOAD] → not my message, setting complete [08:28:14] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:28:14] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:14] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:28:14] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:28:14] [EVOLUTION_FILTER] 📝 Updated lastSeenMessageId after marking as read: 19179 → 19181 [08:28:14] [CLIENT_SIG] WebSocket opened [08:28:14] [CLIENT_SIG] HELLO sent as client for session ILUIWU [08:28:14] [CLIENT_SIG] Connected! clientId=dIu_nwjhWuda-bey [08:28:14] [CLIENT_SIG] Received 2 clients for session 'ILUIWU' (my session: 'ILUIWU') [08:28:14] [CLIENT_SIG] - Esra (EDAD55A1-003F-415D-AA60-672B34B504FE) [08:28:14] [CLIENT_SIG] - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [08:28:14] [PUSH_EMBED] Got evolution data for message 19181, saving to local DB [08:28:14] [PUSH_EMBED] Saved evolution data for message 19181 [08:28:14] [PUSH_PRELOAD] Fetched 2 messages - caching for instant display [08:28:14] [PUSH_PRELOAD] ⚡ Pre-cached 2 messages for instant display (preserved 0 from push) [08:28:14] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [08:28:14] [PUSH] Server fetch on tap completed (success=true) [08:28:14] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("message_id"): 19181, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("message_data"): { datesent = "2026-01-26 07:28:10"; "file_name" = ""; message = "Thank youuu"; "message_id" = 19181; "message_type" = 0; "prev_session_message_id" = 19180; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] [08:28:14] [PUSH_EMBED_VC] Message 19181 already in memory - skipping [08:28:14] [PUSH] ⚡ Embedded message handled directly in ViewController [08:28:14] [PUSH] Parsed message_id: 19181 [08:28:14] [PUSH] Parsed operation_type: 0 [08:28:14] [PUSH] Taking direct action: opType=0, messageId=19181 [08:28:14] [PUSH] TakeActionFromPush called: OperationType=0, MessageIds=19181 [08:28:14] [PUSH] ⚡ Message 19181 already in memory - skipping duplicate notification entirely [08:28:14] [SECURITY] sceneDidBecomeActive - isAuthenticated=false, didEnterBackground=false [08:28:14] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow [08:28:14] [PUSH] handlePollEventsNotification userInfo: [:] [08:28:14] [PUSH] No message_id in userInfo [08:28:14] [PUSH] No operation_type in userInfo [08:28:14] [FAST_REFRESH] Evolution disabled - performing incremental sync [08:28:14] [FAST_REFRESH] Already have 52 messages - skipping local DB load [08:28:14] [FAST_REFRESH] About to call reloadMessagesForCurrentTab(), isMainThread=true, viewLoaded=true [08:28:14] [FAST_REFRESH] reloadMessagesForCurrentTab() called successfully [08:28:14] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=52 [08:28:14] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19181 [08:28:14] [INCREMENTAL_SYNC] ✅ No new messages [08:28:14] [FAST_REFRESH] Incremental sync complete - 52 messages [08:28:15] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[19181, 19179, 19178, 19177, 19176] [08:28:15] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:15] [CELL_UPLOAD] → not my message, setting complete [08:28:15] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:28:15] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:15] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:28:15] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:28:15] [COMBINED_FETCH] Loaded 7943 read receipts, 974 messages with reactions [08:28:15] [FAST_REFRESH] Enriched 52 messages with readBy data [08:28:15] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[19181, 19179, 19178, 19177, 19176] [08:28:15] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:15] [CELL_UPLOAD] → not my message, setting complete [08:28:15] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:28:15] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:15] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:28:15] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:28:15] [PUSH] Silent push received [08:28:15] [PUSH_EMBED] 📩 Received embedded message: id=19181, type=0, sender=Esra [08:28:15] [PUSH_EMBED] ✅ Saved message 19181 to local DB (sync) [08:28:15] [PUSH_EMBED] Created new cache with embedded message 19181 [08:28:15] [PUSH_EMBED] Fetching evolution data for message 19181 in background [08:28:15] [PUSH_EMBED] ✅ Fully processed message 19181 [08:28:15] [PUSH] Embedded message handled instantly from silent push [08:28:15] [PUSH_UI] 🔔 handlePushMessageReceived CALLED [08:28:15] [PUSH_UI_BLACKOUT] blackoutView=false, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, type=0 [08:28:15] [PUSH_UI] Message 19181 already in memory - skipping insert [08:28:15] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("message_id"): 19181, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 2; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-26 07:28:10"; "file_name" = ""; message = "Thank youuu"; "message_id" = 19181; "message_type" = 0; "prev_session_message_id" = 19180; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("session_id"): ILUIWU] [08:28:15] [PUSH_EMBED_VC] Message 19181 already in memory - skipping [08:28:15] [PUSH] ⚡ Embedded message handled directly in ViewController [08:28:15] [PUSH] Parsed message_id: 19181 [08:28:15] [PUSH] Parsed operation_type: 0 [08:28:15] [PUSH] Taking direct action: opType=0, messageId=19181 [08:28:15] [PUSH] TakeActionFromPush called: OperationType=0, MessageIds=19181 [08:28:15] [PUSH] ⚡ Message 19181 already in memory - skipping duplicate notification entirely [08:28:15] [COMBINED_FETCH] Loaded 7943 read receipts, 974 messages with reactions [08:28:15] [FOREGROUND] Enriched 0 messages with readBy data from server [08:28:15] [PUSH_EMBED] Got evolution data for message 19181, saving to local DB [08:28:15] [PUSH_EMBED] Saved evolution data for message 19181 [08:28:15] [PIN_AUTH] Correct PIN [08:28:15] [SECURITY] Restored real session: ILUIWU [08:28:15] [SECURITY] Restored real session: ILUIWU [08:28:16] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[19181, 19179, 19178, 19177, 19176] [08:28:16] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:16] [CELL_UPLOAD] → not my message, setting complete [08:28:16] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:28:16] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:16] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:28:16] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:28:16] [LOCK] ✅ PIN auth callback - setting isAuthenticated = true [08:28:16] [AUTH] Authentication completed - updating UI only (data already fetched in foreground handler) [08:28:16] [AUTH] UI update complete [08:28:16] [FAKE MODE] Exiting fake mode, restoring real session [08:28:16] [SECURITY] Restored real session: ILUIWU [08:28:16] [SECURITY] Saved real session: ILUIWU [08:28:16] [FAKE MODE] ✅ Restored real session: ILUIWU [08:28:16] [FAKE MODE] Loaded 50 messages (limited to page size) [08:28:16] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:16] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:28:16] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:28:16] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:16] [CELL_UPLOAD] → not my message, setting complete [08:28:16] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:28:16] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":0,"removed_from_other_channels":0} [08:28:16] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [08:28:16] [USER] ✅ User registered successfully [08:28:16] [PUSH] User registration after token update: success [08:28:16] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19131, 19133, 19134, 19135, 19136] [08:28:16] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:16] [CELL_UPLOAD] → not my message, setting complete [08:28:16] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:28:16] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:16] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:28:16] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:28:16] [COMBINED_FETCH] Loaded 7943 read receipts, 974 messages with reactions [08:28:16] [FAKE MODE] Enriched 50 messages with readBy data [08:28:16] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19131, 19133, 19134, 19135, 19136] [08:28:16] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:16] [CELL_UPLOAD] → not my message, setting complete [08:28:16] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:28:16] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:16] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:28:16] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:28:17] [PUSH] Silent push received [08:28:17] [PUSH_EMBED] No embedded message_data in notification [08:28:17] [PUSH] No embedded data, pre-loading messages from server [08:28:17] [PUSH_PRELOAD] Fetching messages for instant display cache [08:28:17] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [08:28:17] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push) [08:28:17] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [08:28:17] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19181, AnyHashable("aps"): { "content-available" = 1; }] [08:28:17] [PUSH] Parsed message_id: 19181 [08:28:17] [PUSH] Parsed operation_type: 3 [08:28:17] [PUSH] Taking direct action: opType=3, messageId=19181 [08:28:17] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19181 [08:28:18] [CLIENT_SIG] Event received: type=3 messageId=19181 [08:28:18] [WS_EVENT] Received event: type=3, messageId=19181 [08:28:18] [WS_EVENT] Read receipt for message 19181 by Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [08:28:18] [PUSH] Silent push received [08:28:18] [PUSH_EMBED] No embedded message_data in notification [08:28:18] [PUSH] No embedded data, pre-loading messages from server [08:28:18] [PUSH_PRELOAD] Fetching messages for instant display cache [08:28:18] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [08:28:18] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push) [08:28:18] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [08:28:18] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19180, AnyHashable("operation_type"): 3] [08:28:18] [PUSH] Parsed message_id: 19180 [08:28:18] [PUSH] Parsed operation_type: 3 [08:28:18] [PUSH] Taking direct action: opType=3, messageId=19180 [08:28:18] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19180 [08:28:18] [CLIENT_SIG] Event received: type=3 messageId=19180 [08:28:18] [WS_EVENT] Received event: type=3, messageId=19180 [08:28:18] [WS_EVENT] Read receipt for message 19180 by Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [08:28:21] [CLIENT_SIG] Typing stop from: Esra (EDAD55A1-003F-415D-AA60-672B34B504FE) [08:28:23] [CLIENT_SIG] Event received: type=0 messageId=19182 [08:28:23] [WS_EVENT] Received event: type=0, messageId=19182 [08:28:23] [WS_EVENT] 📨 New message notification (msgId=19182) - triggering incremental refresh, currentMsgCount=50 [08:28:23] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=50 [08:28:23] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19181 [08:28:23] [INCREMENTAL_SYNC] ✅ Found 1 new messages [08:28:23] [BLACKOUT_DEBUG] blackoutView=nil, newMessages.count=1 [08:28:23] [WS_EVENT] ✅ Incremental refresh complete, newMsgCount=51 [08:28:23] [PUSH_DEBUG] ⬇️ PUSH RECEIVED at 2026-01-26 07:28:23 +0000 - type: unknown, operation_type: 0, message_id: 19182, session_id: ILUIWU, state: 0 [08:28:23] [PUSH_DEBUG] Full userInfo: [AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19182, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-26 07:28:21"; "file_name" = ""; message = "I\U2019ll let you know \U2665\Ufe0f"; "message_id" = 19182; "message_type" = 0; "prev_session_message_id" = 19181; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] [08:28:23] [PUSH] App active - suppressing notification UI, posting internal event [08:28:23] [PUSH_EMBED] 📩 Received embedded message: id=19182, type=0, sender=Esra [08:28:23] [PUSH_EMBED] ✅ Saved message 19182 to local DB (sync) [08:28:23] [PUSH_EMBED] Inserted message 19182 into existing cache (now 51 messages) [08:28:23] [PUSH_EMBED] Fetching evolution data for message 19182 in background [08:28:23] [PUSH_EMBED] ✅ Fully processed message 19182 [08:28:23] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19182, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("message_data"): { datesent = "2026-01-26 07:28:21"; "file_name" = ""; message = "I\U2019ll let you know \U2665\Ufe0f"; "message_id" = 19182; "message_type" = 0; "prev_session_message_id" = 19181; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] [08:28:23] [PUSH_EMBED_VC] Message 19182 already in memory - skipping [08:28:23] [PUSH] ⚡ Embedded message handled directly in ViewController [08:28:23] [PUSH] Parsed message_id: 19182 [08:28:23] [PUSH] Parsed operation_type: 0 [08:28:23] [PUSH] Taking direct action: opType=0, messageId=19182 [08:28:23] [PUSH] TakeActionFromPush called: OperationType=0, MessageIds=19182 [08:28:23] [PUSH] ⚡ Message 19182 already in memory - skipping duplicate notification entirely [08:28:23] [PUSH_UI] 🔔 handlePushMessageReceived CALLED [08:28:23] [PUSH_UI_BLACKOUT] blackoutView=false, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, type=0 [08:28:23] [PUSH_UI] Message 19182 already in memory - skipping insert [08:28:23] [PUSH] Silent push received [08:28:23] [PUSH_EMBED] 📩 Received embedded message: id=19182, type=0, sender=Esra [08:28:23] [PUSH_EMBED] ✅ Saved message 19182 to local DB (sync) [08:28:23] [PUSH_EMBED] Fetching evolution data for message 19182 in background [08:28:23] [PUSH_EMBED] ✅ Fully processed message 19182 [08:28:23] [PUSH] Embedded message handled instantly from silent push [08:28:23] [PUSH_UI] 🔔 handlePushMessageReceived CALLED [08:28:23] [PUSH_UI_BLACKOUT] blackoutView=false, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, type=0 [08:28:23] [PUSH_UI] Message 19182 already in memory - skipping insert [08:28:23] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("message_id"): 19182, AnyHashable("message_data"): { datesent = "2026-01-26 07:28:21"; "file_name" = ""; message = "I\U2019ll let you know \U2665\Ufe0f"; "message_id" = 19182; "message_type" = 0; "prev_session_message_id" = 19181; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] [08:28:23] [PUSH_EMBED_VC] Message 19182 already in memory - skipping [08:28:23] [PUSH] ⚡ Embedded message handled directly in ViewController [08:28:23] [PUSH] Parsed message_id: 19182 [08:28:23] [PUSH] Parsed operation_type: 0 [08:28:23] [PUSH] Taking direct action: opType=0, messageId=19182 [08:28:23] [PUSH] TakeActionFromPush called: OperationType=0, MessageIds=19182 [08:28:23] [PUSH] ⚡ Message 19182 already in memory - skipping duplicate notification entirely [08:28:23] [PUSH_EMBED] Got evolution data for message 19182, saving to local DB [08:28:23] [PUSH_EMBED] Saved evolution data for message 19182 [08:28:23] [PUSH_EMBED] Got evolution data for message 19182, saving to local DB [08:28:23] [PUSH_EMBED] Saved evolution data for message 19182 [08:28:23] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[19131, 19133, 19134, 19135, 19136] [08:28:23] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:23] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:28:23] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:28:23] [EVOLUTION_FILTER] 📝 Updated lastSeenMessageId after marking as read: 19181 → 19182 [08:28:26] [PUSH] Silent push received [08:28:26] [PUSH_EMBED] No embedded message_data in notification [08:28:26] [PUSH] No embedded data, pre-loading messages from server [08:28:26] [PUSH_PRELOAD] Fetching messages for instant display cache [08:28:26] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [08:28:26] [PRELOAD_CACHE] Preserving 1 push-inserted messages: [19131] [08:28:26] [PUSH_PRELOAD] ⚡ Pre-cached 51 messages for instant display (preserved 1 from push) [08:28:26] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [08:28:26] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("operation_type"): 3, AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19182] [08:28:26] [PUSH] Parsed message_id: 19182 [08:28:26] [PUSH] Parsed operation_type: 3 [08:28:26] [PUSH] Taking direct action: opType=3, messageId=19182 [08:28:26] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19182 [08:28:26] [CLIENT_SIG] Event received: type=3 messageId=19182 [08:28:26] [WS_EVENT] Received event: type=3, messageId=19182 [08:28:26] [WS_EVENT] Read receipt for message 19182 by Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [08:28:30] [REPLY_DEBUG] 📤 didTapSend - Sending message WITHOUT reply [08:28:30] [SEND_MESSAGE] 📤 Sending message, currentMsgCount=51, isReloading=false [08:28:30] [SEND_MESSAGE] ✅ Added optimistic message id=-3 to arrays, newMsgCount=52 [08:28:30] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[-3, 19182, 19181, 19180, 19179] [08:28:30] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:30] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:28:30] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:28:30] [REPLY_DEBUG] ❌ cancelReply called - clearing messageToReplyTo [08:28:30] [REPLY_DEBUG] ⚠️ sendMessage HTTP BODY - No reply message captured [08:28:31] [CLIENT_SIG] Event received: type=0 messageId=19183 [08:28:31] [CHAT] receive_message.php HTTP 200: {"ok":true,"message_id":19183,"session_id":"ILUIWU","message_type":0,"file_name":"","datesent_utc":"2026-01-26 07:28:30"} [08:28:31] [WS_EVENT] Received event: type=0, messageId=19183 [08:28:31] [WS_EVENT] 📨 New message notification (msgId=19183) - triggering incremental refresh, currentMsgCount=52 [08:28:31] [CHAT] receive_message.php JSON: ["file_name": , "session_id": ILUIWU, "message_type": 0, "datesent_utc": 2026-01-26 07:28:30, "message_id": 19183, "ok": 1] [08:28:31] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=52 [08:28:31] [DB_UPGRADE] Upgrading message ID: -3 → 19183, preserveOriginalDate=false [08:28:31] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19182 [08:28:31] [DB_UPGRADE] ✅ Upgraded -3 → 19183 with send_status=0, 1 row(s) affected [08:28:31] [SEND_UPGRADE] ✅ Updated chatMessages[0].id: -3 → 19183 [08:28:31] [SEND_UPGRADE] ✅ Updated allMessagesWithReadBy[0].id: -3 → 19183 [08:28:31] ReloadData 9 [08:28:31] [INCREMENTAL_SYNC] ✅ Found 1 new messages [08:28:31] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:31] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:28:31] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:28:31] [BLACKOUT_DEBUG] blackoutView=nil, newMessages.count=1 [08:28:31] [WS_EVENT] ✅ Incremental refresh complete, newMsgCount=52 [08:28:31] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[19131, 19133, 19134, 19135, 19136] [08:28:31] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:31] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:28:31] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:28:34] [PUSH] Silent push received [08:28:34] [PUSH_EMBED] No embedded message_data in notification [08:28:34] [PUSH] No embedded data, pre-loading messages from server [08:28:34] [PUSH_PRELOAD] Fetching messages for instant display cache [08:28:34] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [08:28:34] [PRELOAD_CACHE] Preserving 2 push-inserted messages: [19133, 19131] [08:28:34] [PUSH_PRELOAD] ⚡ Pre-cached 52 messages for instant display (preserved 2 from push) [08:28:34] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [08:28:34] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("message_id"): 19183, AnyHashable("operation_type"): 3, AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("session_id"): ILUIWU] [08:28:34] [PUSH] Parsed message_id: 19183 [08:28:34] [PUSH] Parsed operation_type: 3 [08:28:34] [PUSH] Taking direct action: opType=3, messageId=19183 [08:28:34] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19183 [08:28:35] [BROADCAST] Starting camera broadcast on session: iosILUIWU [08:28:35] Initing with camera 0 [08:28:35] [START] AgentController.start() called with session: iosILUIWU [08:28:35] [START] Cancelling any existing idle stop timer [08:28:35] [BROADCAST] Lightbulb shown at lower left, frame=(20.0, 800.0, 50.0, 50.0) [08:28:35] [CLIENT_SIG] Event received: type=3 messageId=19183 [08:28:35] [WS_EVENT] Received event: type=3, messageId=19183 [08:28:35] [WS_EVENT] Read receipt for message 19183 by Esra (EDAD55A1-003F-415D-AA60-672B34B504FE) [08:28:35] WS connected [08:28:38] [CAM] ✅ Connected to signaling server. Session: iosILUIWU, agentId: XOm3hDPAUQce0W19 [08:28:38] [CAM] helloOK → connected=true, myAgentId=XOm3hDPAUQce0W19 [08:28:38] [WEBRTC] Creating new WebRTC client [08:28:38] [CODEC] Available video codecs: H264, H264, VP8, VP9, AV1 [08:28:38] [CODEC] Agent selected encoder: AV1 (best quality) [08:28:38] [WS AUDIO] Initializing WebSocket audio sender... [08:28:38] [WS AUDIO] ✅ WebSocket audio sender initialized [08:28:38] [ICE] Agent using 4 ICE urls: - stun:stun.l.google.com:19302 - turn:crivello.dyndns.org:3478?transport=udp - turn:crivello.dyndns.org:3478?transport=tcp - turns:crivello.dyndns.org:5349?transport=tcp [08:28:38] [ICE] Using 2 ICE server entries [08:28:38] [CAPTURE] startCapture() called with width:1920, height:1080, fps:30 [08:28:38] [CAPTURE] Creating audio track [08:28:38] [CAPTURE] DataChannelAudioSender already exists [08:28:38] [CAPTURE] Creating front video source and track [08:28:38] [CAPTURE] Creating back video source and track [08:28:38] localVideoTrackFront ok [08:28:38] localVideoTrackBack ok [08:28:38] Marking tracks as ready and firing callbacks [08:28:38] [CAPTURE] ✅ Device supports MultiCam, starting dual camera session [08:28:38] [CAPTURE] configureAndStartMultiCamSession() starting... [08:28:38] Video capture stopped (audio still running) [08:28:38] [CAPTURE] Created MultiCamSession and began configuration [08:28:38] [CAPTURE] Looking for camera devices... [08:28:38] [CAPTURE] ✅ Found front camera: Front Camera [08:28:38] [CAPTURE] ✅ Found back camera: Back Camera [08:28:38] Selected camera format: 1920x1080, pixel format: 875704438 [08:28:38] [CAPTURE] Enabled continuous autofocus for front camera [08:28:38] Selected camera format: 1920x1080, pixel format: 875704438 [08:28:38] [CAPTURE] Enabled continuous autofocus for back camera [08:28:38] Selected camera format: 640x480, pixel format: 875704438 [08:28:38] Selected camera format: 640x480, pixel format: 875704438 [08:28:38] [iOS AUDIO] ========== START CAPTURE ========== [08:28:38] [iOS AUDIO] BEFORE - category: AVAudioSessionCategorySoloAmbient [08:28:38] [iOS AUDIO] BEFORE - mode: AVAudioSessionModeDefault [08:28:38] [iOS AUDIO] BEFORE - isOtherAudioPlaying: false [08:28:38] [iOS AUDIO] BEFORE - availableInputs: ["iPhone Microphone"] [08:28:38] [iOS AUDIO] BEFORE - currentRoute.inputs: [] [08:28:38] [iOS AUDIO] BEFORE - currentRoute.outputs: ["Speaker"] [08:28:38] [iOS AUDIO] Setting category to .playAndRecord... [08:28:38] [iOS AUDIO] Activating audio session... [08:28:38] [iOS AUDIO] ✅ Audio session configured [08:28:38] [iOS AUDIO] AFTER - category: AVAudioSessionCategoryPlayAndRecord [08:28:38] [iOS AUDIO] AFTER - mode: AVAudioSessionModeVideoChat [08:28:38] [iOS AUDIO] AFTER - currentRoute.inputs: ["iPhone Microphone"] [08:28:38] [iOS AUDIO] AFTER - currentRoute.outputs: ["Speaker"] [08:28:38] [iOS AUDIO] AFTER - recordPermission: 1735552628 [08:28:38] [iOS AUDIO] Creating AVAudioEngine... [08:28:38] [iOS AUDIO] Got inputNode: [08:28:38] [iOS AUDIO] Input format: 48000.0Hz, 1 channels, 1 [08:28:38] [iOS AUDIO] Installing tap on inputNode... [08:28:38] [iOS AUDIO] ✅ Tap installed [08:28:38] [iOS AUDIO] Starting engine... [08:28:38] [iOS AUDIO] ✅ AVAudioEngine started [08:28:38] [iOS AUDIO] engine.isRunning: true [08:28:38] [iOS AUDIO] inputNode.isVoiceProcessingEnabled: false [08:28:38] [iOS AUDIO] ========== END START CAPTURE ========== [08:28:38] [CAPTURE] Configuration committed [08:28:38] [CAPTURE] Starting MultiCam session... [08:28:38] [iOS AUDIO] 📤 Sent packet #1: 9600 bytes (4800 samples, ~100ms) [08:28:38] [iOS AUDIO] 📤 Sent packet #2: 9600 bytes (4800 samples, ~100ms) [08:28:39] [CAPTURE] ✅ AVCaptureMultiCamSession started successfully (front + back) [08:28:39] [CAPTURE] Session running: true [08:28:39] [CAM] viewerJoin → session: iosILUIWU, viewerId: Is43q7-x81tHjYbv [08:28:39] [WEBRTC] WebRTC client already exists, reusing it [08:28:39] [WEBRTC] WebRTC client already exists, reusing it [08:28:39] ensureCaptureStarted - adding peer [08:28:39] tracksReady = true [08:28:39] Added front video track to peer connection for Is43q7-x81tHjYbv [08:28:39] Added back video track to peer connection for Is43q7-x81tHjYbv [08:28:39] Added audio track to peer connection for Is43q7-x81tHjYbv [08:28:39] localVideoTrackFront ok [08:28:39] localVideoTrackBack ok [08:28:39] tracks already marked as ready [08:28:39] Peer added with tracks, notifying viewer ready [08:28:39] notifyViewerReady called [08:28:39] notifyViewerReady -> Will send [08:28:39] [iOS AUDIO] 📤 Sent packet #3: 9600 bytes (4800 samples, ~100ms) [08:28:39] [iOS AUDIO] 📤 Sent packet #4: 9600 bytes (4800 samples, ~100ms) [08:28:39] [iOS AUDIO] 📤 Sent packet #5: 9600 bytes (4800 samples, ~100ms) [08:28:39] [iOS AUDIO] 📤 Sent packet #6: 9600 bytes (4800 samples, ~100ms) [08:28:39] [iOS AUDIO] 📤 Sent packet #7: 9600 bytes (4800 samples, ~100ms) [08:28:39] [iOS AUDIO] 📤 Sent packet #8: 9600 bytes (4800 samples, ~100ms) [08:28:39] [CAM] Offer → session: iosILUIWU, viewerId: Is43q7-x81tHjYbv [08:28:39] [WEBRTC] WebRTC client already exists, reusing it [08:28:39] [CAM] Peer connection ready, processing offer immediately [08:28:39] Creating answer for Is43q7-x81tHjYbv. Found 3 transceivers: [08:28:39] Transceiver 0: video, direction=sendRecv, hasTrack=true [08:28:39] Transceiver 1: video, direction=sendRecv, hasTrack=true [08:28:39] Transceiver 2: audio, direction=sendRecv, hasTrack=true [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:4071504272 1 udp 2122260224 192.168.1.8 52643 typ host generation 0 ufrag 59g5 network-id 1 network-cost 10 [08:28:39] [ICE] remote host → applying [08:28:39] SEND answer for viewerId=Is43q7-x81tHjYbv [08:28:39] SDP length: 4815 [08:28:39] ICE gathering state: 1 [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:2991868729 1 udp 1686052608 212.252.142.37 43158 typ srflx raddr 192.168.1.8 rport 52643 generation 0 ufrag 59g5 network-id 1 network-cost 10 [08:28:39] [ICE] remote srflx → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] ICE state for vid=Is43q7-x81tHjYbv: 1 ( RTCIceConnectionState ) [08:28:39] Found s:candidate:1039999794 1 udp 2122129152 10.253.162.116 62112 typ host generation 0 ufrag 59g5 network-id 12 network-cost 900 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [ICE] agent local host [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) host candidate [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:2872395243 1 udp 1685921536 188.58.29.36 28232 typ srflx raddr 10.253.162.116 rport 62112 generation 0 ufrag 59g5 network-id 12 network-cost 900 [08:28:39] [ICE] remote srflx → applying [08:28:39] Candidate: ["sdpMLineIndex": 0, "sdpMid": Optional("0"), "candidate": "candidate:1528760099 1 udp 2122129151 192.168.1.177 64011 typ host generation 0 ufrag k90g network-id 1 network-cost 10"] [08:28:39] [ICE] agent local host [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) host candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["sdpMLineIndex": 0, "sdpMid": Optional("0"), "candidate": "candidate:1136277931 1 udp 2122063615 10.62.157.247 63963 typ host generation 0 ufrag k90g network-id 9 network-cost 900"] [08:28:39] [ICE] agent local host [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) host candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["sdpMLineIndex": 0, "sdpMid": Optional("0"), "candidate": "candidate:2031408212 1 udp 2121998079 10.115.51.36 60116 typ host generation 0 ufrag k90g network-id 10 network-cost 900"] [08:28:39] [ICE] agent local host [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) host candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["sdpMLineIndex": 0, "sdpMid": Optional("0"), "candidate": "candidate:2031408212 1 udp 2121932543 10.115.51.36 49954 typ host generation 0 ufrag k90g network-id 4 network-cost 50"] [08:28:39] [ICE] agent local host [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) host candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["sdpMLineIndex": 0, "sdpMid": Optional("0"), "candidate": "candidate:2031408212 1 udp 2121867007 10.115.51.36 64756 typ host generation 0 ufrag k90g network-id 5 network-cost 50"] [08:28:39] [ICE] agent local host [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) host candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["candidate": "candidate:2031408212 1 udp 2121801471 10.115.51.36 61031 typ host generation 0 ufrag k90g network-id 6 network-cost 50", "sdpMid": Optional("0"), "sdpMLineIndex": 0] [08:28:39] [ICE] agent local host [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) host candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["candidate": "candidate:1215958092 1 udp 2122265343 fdaa:bbcc:ddee:0:1841:8c4f:993a:7857 62800 typ host generation 0 ufrag k90g network-id 3 network-cost 10", "sdpMid": Optional("0"), "sdpMLineIndex": 0] [08:28:39] [ICE] agent local host [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) host candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["candidate": "candidate:751239009 1 udp 2122197247 2001:1708:bb9:ed00:f5a0:db2b:e1f0:8dc1 63163 typ host generation 0 ufrag k90g network-id 2 network-cost 10", "sdpMid": Optional("0"), "sdpMLineIndex": 0] [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:1558409667 1 udp 2121670400 192.0.0.6 62632 typ host generation 0 ufrag 59g5 network-id 3 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:1558409667 1 udp 2121604864 192.0.0.6 56090 typ host generation 0 ufrag 59g5 network-id 6 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:35652204 1 udp 2122197248 2a02:4e0:5fd:553a:ddc3:aed2:9843:8560 57432 typ host generation 0 ufrag 59g5 network-id 13 network-cost 900 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:4212483920 1 udp 2122068736 fd74:6572:6d6e:7573:c:e0f6:10fa:d736 65089 typ host generation 0 ufrag 59g5 network-id 4 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:3386594126 1 udp 2122003200 fd74:6572:6d6e:7573:d:e0f6:10fa:d736 50925 typ host generation 0 ufrag 59g5 network-id 5 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:4212483920 1 udp 2121937664 fd74:6572:6d6e:7573:c:e0f6:10fa:d736 49877 typ host generation 0 ufrag 59g5 network-id 7 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:3125946125 1 udp 2121869568 2a02:4e0:5fd:553a:872:a579:644e:58b5 50535 typ host generation 0 ufrag 59g5 network-id 2 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:2753134952 1 udp 41885952 192.168.1.31 49692 typ relay raddr 212.252.142.37 rport 43158 generation 0 ufrag 59g5 network-id 1 network-cost 10 [08:28:39] [ICE] remote relay → applying (ip=192.168.1.31 port=49692) [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:1521702396 1 udp 25108736 192.168.1.31 63116 typ relay raddr 212.252.142.37 rport 42576 generation 0 ufrag 59g5 network-id 1 network-cost 10 [08:28:39] [ICE] remote relay → applying (ip=192.168.1.31 port=63116) [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:2753134952 1 udp 41754880 192.168.1.31 50468 typ relay raddr 188.58.29.36 rport 28232 generation 0 ufrag 59g5 network-id 12 network-cost 900 [08:28:39] [ICE] remote relay → applying (ip=192.168.1.31 port=50468) [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:201649412 1 tcp 1518280448 192.168.1.8 49348 typ host tcptype passive generation 0 ufrag 59g5 network-id 1 network-cost 10 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:3277322150 1 tcp 1518149376 10.253.162.116 49349 typ host tcptype passive generation 0 ufrag 59g5 network-id 12 network-cost 900 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:2722735447 1 tcp 1517690624 192.0.0.6 49350 typ host tcptype passive generation 0 ufrag 59g5 network-id 3 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [iOS AUDIO] 📤 Sent packet #9: 9600 bytes (4800 samples, ~100ms) [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:2722735447 1 tcp 1517625088 192.0.0.6 49351 typ host tcptype passive generation 0 ufrag 59g5 network-id 6 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:4236957432 1 tcp 1518217472 2a02:4e0:5fd:553a:ddc3:aed2:9843:8560 49352 typ host tcptype passive generation 0 ufrag 59g5 network-id 13 network-cost 900 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:96449476 1 tcp 1518088960 fd74:6572:6d6e:7573:c:e0f6:10fa:d736 49353 typ host tcptype passive generation 0 ufrag 59g5 network-id 4 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:930187226 1 tcp 1518023424 fd74:6572:6d6e:7573:d:e0f6:10fa:d736 49354 typ host tcptype passive generation 0 ufrag 59g5 network-id 5 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:96449476 1 tcp 1517957888 fd74:6572:6d6e:7573:c:e0f6:10fa:d736 49355 typ host tcptype passive generation 0 ufrag 59g5 network-id 7 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:1157165977 1 tcp 1517889792 2a02:4e0:5fd:553a:872:a579:644e:58b5 49356 typ host tcptype passive generation 0 ufrag 59g5 network-id 2 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:4071504272 1 udp 2122260224 192.168.1.8 57431 typ host generation 0 ufrag 59g5 network-id 1 network-cost 10 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:2991868729 1 udp 1686052608 212.252.142.37 42906 typ srflx raddr 192.168.1.8 rport 57431 generation 0 ufrag 59g5 network-id 1 network-cost 10 [08:28:39] [ICE] remote srflx → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] [ICE] agent local srflx [08:28:39] Found s:candidate:1039999794 1 udp 2122129152 10.253.162.116 52379 typ host generation 0 ufrag 59g5 network-id 12 network-cost 900 [08:28:39] [ICE] remote host → applying [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) srflx candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["candidate": "candidate:4099270173 1 udp 1685921535 84.227.75.34 64011 typ srflx raddr 192.168.1.177 rport 64011 generation 0 ufrag k90g network-id 1 network-cost 10", "sdpMid": Optional("0"), "sdpMLineIndex": 0] [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:2872395243 1 udp 1685921536 188.58.29.36 28579 typ srflx raddr 10.253.162.116 rport 52379 generation 0 ufrag 59g5 network-id 12 network-cost 900 [08:28:39] [ICE] remote srflx → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:1558409667 1 udp 2121670400 192.0.0.6 53665 typ host generation 0 ufrag 59g5 network-id 3 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:1558409667 1 udp 2121604864 192.0.0.6 52866 typ host generation 0 ufrag 59g5 network-id 6 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:35652204 1 udp 2122197248 2a02:4e0:5fd:553a:ddc3:aed2:9843:8560 51284 typ host generation 0 ufrag 59g5 network-id 13 network-cost 900 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:4212483920 1 udp 2122068736 fd74:6572:6d6e:7573:c:e0f6:10fa:d736 52561 typ host generation 0 ufrag 59g5 network-id 4 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:3386594126 1 udp 2122003200 fd74:6572:6d6e:7573:d:e0f6:10fa:d736 62829 typ host generation 0 ufrag 59g5 network-id 5 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:4212483920 1 udp 2121937664 fd74:6572:6d6e:7573:c:e0f6:10fa:d736 56049 typ host generation 0 ufrag 59g5 network-id 7 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:3125946125 1 udp 2121869568 2a02:4e0:5fd:553a:872:a579:644e:58b5 52184 typ host generation 0 ufrag 59g5 network-id 2 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:2753134952 1 udp 41885952 192.168.1.31 54437 typ relay raddr 212.252.142.37 rport 42906 generation 0 ufrag 59g5 network-id 1 network-cost 10 [08:28:39] [ICE] remote relay → applying (ip=192.168.1.31 port=54437) [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:1521702396 1 udp 25108736 192.168.1.31 55743 typ relay raddr 212.252.142.37 rport 43007 generation 0 ufrag 59g5 network-id 1 network-cost 10 [08:28:39] [ICE] remote relay → applying (ip=192.168.1.31 port=55743) [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:2753134952 1 udp 41754880 192.168.1.31 54511 typ relay raddr 188.58.29.36 rport 28579 generation 0 ufrag 59g5 network-id 12 network-cost 900 [08:28:39] [ICE] remote relay → applying (ip=192.168.1.31 port=54511) [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:201649412 1 tcp 1518280448 192.168.1.8 49357 typ host tcptype passive generation 0 ufrag 59g5 network-id 1 network-cost 10 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:3277322150 1 tcp 1518149376 10.253.162.116 49358 typ host tcptype passive generation 0 ufrag 59g5 network-id 12 network-cost 900 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:2722735447 1 tcp 1517690624 192.0.0.6 49359 typ host tcptype passive generation 0 ufrag 59g5 network-id 3 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:2722735447 1 tcp 1517625088 192.0.0.6 49360 typ host tcptype passive generation 0 ufrag 59g5 network-id 6 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:4236957432 1 tcp 1518217472 2a02:4e0:5fd:553a:ddc3:aed2:9843:8560 49361 typ host tcptype passive generation 0 ufrag 59g5 network-id 13 network-cost 900 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:96449476 1 tcp 1518088960 fd74:6572:6d6e:7573:c:e0f6:10fa:d736 49362 typ host tcptype passive generation 0 ufrag 59g5 network-id 4 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:930187226 1 tcp 1518023424 fd74:6572:6d6e:7573:d:e0f6:10fa:d736 49363 typ host tcptype passive generation 0 ufrag 59g5 network-id 5 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:96449476 1 tcp 1517957888 fd74:6572:6d6e:7573:c:e0f6:10fa:d736 49364 typ host tcptype passive generation 0 ufrag 59g5 network-id 7 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:1157165977 1 tcp 1517889792 2a02:4e0:5fd:553a:872:a579:644e:58b5 49365 typ host tcptype passive generation 0 ufrag 59g5 network-id 2 network-cost 50 [08:28:39] [ICE] remote host → applying [08:28:39] [ICE] agent local relay → ip=192.168.1.31 port=62918 [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) relay candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["candidate": "candidate:122267067 1 udp 41755135 192.168.1.31 62918 typ relay raddr 84.227.75.34 rport 64011 generation 0 ufrag k90g network-id 1 network-cost 10", "sdpMid": Optional("0"), "sdpMLineIndex": 0] [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:1521702396 1 udp 24977663 192.168.1.31 50992 typ relay raddr 188.58.29.36 rport 26761 generation 0 ufrag 59g5 network-id 12 network-cost 900 [08:28:39] [ICE] remote relay → applying (ip=192.168.1.31 port=50992) [08:28:39] [CAM] iceFromViewer viewerId=Is43q7-x81tHjYbv [08:28:39] [CAM] Peer connection ready, processing ICE candidate immediately [08:28:39] addRemoteCandidate for vid=Is43q7-x81tHjYbv [08:28:39] Found s:candidate:1521702396 1 udp 24977663 192.168.1.31 50392 typ relay raddr 188.58.29.36 rport 26291 generation 0 ufrag 59g5 network-id 12 network-cost 900 [08:28:39] [ICE] remote relay → applying (ip=192.168.1.31 port=50392) [08:28:39] [ICE] agent local relay → ip=192.168.1.31 port=65268 [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) relay candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["candidate": "candidate:2038843171 1 udp 24977663 192.168.1.31 65268 typ relay raddr 84.227.75.34 rport 52930 generation 0 ufrag k90g network-id 1 network-cost 10", "sdpMid": Optional("0"), "sdpMLineIndex": 0] [08:28:39] [ICE] agent local host [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) host candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["candidate": "candidate:634447291 1 tcp 1518149375 192.168.1.177 52933 typ host tcptype passive generation 0 ufrag k90g network-id 1 network-cost 10", "sdpMid": Optional("0"), "sdpMLineIndex": 0] [08:28:39] [ICE] agent local host [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) host candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["candidate": "candidate:1031134003 1 tcp 1518083839 10.62.157.247 52938 typ host tcptype passive generation 0 ufrag k90g network-id 9 network-cost 900", "sdpMid": Optional("0"), "sdpMLineIndex": 0] [08:28:39] [ICE] agent local host [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) host candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["candidate": "candidate:131806924 1 tcp 1518018303 10.115.51.36 52943 typ host tcptype passive generation 0 ufrag k90g network-id 10 network-cost 900", "sdpMid": Optional("0"), "sdpMLineIndex": 0] [08:28:39] [ICE] agent local host [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) host candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["sdpMid": Optional("0"), "sdpMLineIndex": 0, "candidate": "candidate:131806924 1 tcp 1517952767 10.115.51.36 52948 typ host tcptype passive generation 0 ufrag k90g network-id 4 network-cost 50"] [08:28:39] [ICE] agent local host [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) host candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["sdpMid": Optional("0"), "sdpMLineIndex": 0, "candidate": "candidate:131806924 1 tcp 1517887231 10.115.51.36 52953 typ host tcptype passive generation 0 ufrag k90g network-id 5 network-cost 50"] [08:28:39] [ICE] agent local host [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) host candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["sdpMid": Optional("0"), "sdpMLineIndex": 0, "candidate": "candidate:131806924 1 tcp 1517821695 10.115.51.36 52958 typ host tcptype passive generation 0 ufrag k90g network-id 6 network-cost 50"] [08:28:39] [ICE] agent local host [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) host candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["candidate": "candidate:917892820 1 tcp 1518285567 fdaa:bbcc:ddee:0:1841:8c4f:993a:7857 52963 typ host tcptype passive generation 0 ufrag k90g network-id 3 network-cost 10", "sdpMid": Optional("0"), "sdpMLineIndex": 0] [08:28:39] [ICE] agent local host [08:28:39] [ICE] local → remote (Is43q7-x81tHjYbv) host candidate [08:28:39] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:39] Candidate: ["candidate": "candidate:1376329209 1 tcp 1518217471 2001:1708:bb9:ed00:f5a0:db2b:e1f0:8dc1 52969 typ host tcptype passive generation 0 ufrag k90g network-id 2 network-cost 10", "sdpMid": Optional("0"), "sdpMLineIndex": 0] [08:28:39] [iOS AUDIO] 📤 Sent packet #10: 9600 bytes (4800 samples, ~100ms) [08:28:40] [ICE] agent local srflx [08:28:40] [ICE] local → remote (Is43q7-x81tHjYbv) srflx candidate [08:28:40] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:40] Candidate: ["sdpMid": Optional("0"), "candidate": "candidate:3975207061 1 udp 1685855999 194.230.158.239 55890 typ srflx raddr 10.62.157.247 rport 63963 generation 0 ufrag k90g network-id 9 network-cost 900", "sdpMLineIndex": 0] [08:28:40] [ICE] agent local srflx [08:28:40] [ICE] local → remote (Is43q7-x81tHjYbv) srflx candidate [08:28:40] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:40] Candidate: ["sdpMid": Optional("0"), "sdpMLineIndex": 0, "candidate": "candidate:3975207061 1 udp 1685855999 194.230.158.239 43148 typ srflx raddr 10.62.157.247 rport 63963 generation 0 ufrag k90g network-id 9 network-cost 900"] [08:28:40] [ICE] agent local relay → ip=192.168.1.31 port=61186 [08:28:40] [ICE] local → remote (Is43q7-x81tHjYbv) relay candidate [08:28:40] SEND ice for viewerId=Is43q7-x81tHjYbv [08:28:40] Candidate: ["sdpMLineIndex": 0, "sdpMid": Optional("0"), "candidate": "candidate:122267067 1 udp 41689599 192.168.1.31 61186 typ relay raddr 194.230.158.239 rport 55890 generation 0 ufrag k90g network-id 9 network-cost 900"] [08:28:40] ICE state for vid=Is43q7-x81tHjYbv: 2 ( RTCIceConnectionState ) [08:28:40] [STATS] starting poll for vid=Is43q7-x81tHjYbv [08:28:43] [BROADCAST] Stopping camera broadcast [08:28:43] [CAM] Disconnected from signaling server [08:28:43] [iOS AUDIO] ✅ Streaming: 50 packets sent [08:28:43] Video capture stopped (audio still running) [08:28:43] [iOS AUDIO] Audio capture stopped [08:28:43] Capture stopped (video + audio) [08:28:43] ICE state for vid=Is43q7-x81tHjYbv: 6 ( RTCIceConnectionState ) [08:28:43] Video capture stopped (audio still running) [08:28:43] Capture stopped (video + audio) [08:28:43] [WEBRTC] WebRTCClient deinit - timers cleaned up [08:28:43] [WEBRTC] ✅ Media teardown complete - camera stopped [08:28:43] WS closed [08:28:44] [CLIENT_SIG] Typing start from: Esra (EDAD55A1-003F-415D-AA60-672B34B504FE) [08:28:48] [CLIENT_SIG] Typing stop from: Esra (EDAD55A1-003F-415D-AA60-672B34B504FE) [08:28:49] [CLIENT_SIG] Client disconnected: Esra (EDAD55A1-003F-415D-AA60-672B34B504FE) on session 'ILUIWU' (my session: 'ILUIWU') [08:28:49] [CLIENT_SIG] Client disconnected: Esra (EDAD55A1-003F-415D-AA60-672B34B504FE) on session 'ILUIWU' (my session: 'ILUIWU') [08:28:50] [CLIENT_SIG] Event received: type=0 messageId=19184 [08:28:50] [WS_EVENT] Received event: type=0, messageId=19184 [08:28:50] [WS_EVENT] 📨 New message notification (msgId=19184) - triggering incremental refresh, currentMsgCount=52 [08:28:50] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=52 [08:28:50] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19183 [08:28:50] [PUSH_DEBUG] ⬇️ PUSH RECEIVED at 2026-01-26 07:28:50 +0000 - type: unknown, operation_type: 0, message_id: 19184, session_id: ILUIWU, state: 0 [08:28:50] [PUSH_DEBUG] Full userInfo: [AnyHashable("message_data"): { datesent = "2026-01-26 07:28:48"; "file_name" = ""; message = "Babyyy\Ud83d\Udc8b\Ud83d\Udc8b\U2665\Ufe0f"; "message_id" = 19184; "message_type" = 0; "prev_session_message_id" = 19183; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 19184, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] [08:28:50] [PUSH] App active - suppressing notification UI, posting internal event [08:28:50] [PUSH_EMBED] 📩 Received embedded message: id=19184, type=0, sender=Esra [08:28:50] [PUSH_EMBED] ✅ Saved message 19184 to local DB (sync) [08:28:50] [PUSH_EMBED] Inserted message 19184 into existing cache (now 53 messages) [08:28:50] [PUSH_EMBED] Fetching evolution data for message 19184 in background [08:28:50] [PUSH_EMBED] ✅ Fully processed message 19184 [08:28:50] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("message_data"): { datesent = "2026-01-26 07:28:48"; "file_name" = ""; message = "Babyyy\Ud83d\Udc8b\Ud83d\Udc8b\U2665\Ufe0f"; "message_id" = 19184; "message_type" = 0; "prev_session_message_id" = 19183; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }, AnyHashable("message_id"): 19184, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }] [08:28:50] [PUSH_EMBED_VC] Processing embedded message: id=19184, type=0, sender=Esra, prevId=19183 [08:28:50] [PUSH_EMBED_VC] Inserted message 19184 into allMessagesWithReadBy (now 53 messages) [08:28:50] [PUSH_EMBED_VC] ✅ Previous message 19183 exists in memory [08:28:50] [PUSH] ⚡ Embedded message handled directly in ViewController [08:28:50] [PUSH] Parsed message_id: 19184 [08:28:50] [PUSH] Parsed operation_type: 0 [08:28:50] [PUSH] Taking direct action: opType=0, messageId=19184 [08:28:50] [PUSH] TakeActionFromPush called: OperationType=0, MessageIds=19184 [08:28:50] [PUSH] ⚡ Message 19184 already in memory - skipping duplicate notification entirely [08:28:50] [PUSH_UI] 🔔 handlePushMessageReceived CALLED [08:28:50] [PUSH_UI_BLACKOUT] blackoutView=false, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, type=0 [08:28:50] [PUSH_UI] Message 19184 already in memory - skipping insert [08:28:50] [PUSH_EMBED_VC] Saved message 19184 to local DB [08:28:50] [PUSH] Silent push received [08:28:50] [PUSH_EMBED] 📩 Received embedded message: id=19184, type=0, sender=Esra [08:28:50] [PUSH_EMBED] ✅ Saved message 19184 to local DB (sync) [08:28:50] [PUSH_EMBED] Fetching evolution data for message 19184 in background [08:28:50] [PUSH_EMBED] ✅ Fully processed message 19184 [08:28:50] [PUSH] Embedded message handled instantly from silent push [08:28:50] [PUSH_UI] 🔔 handlePushMessageReceived CALLED [08:28:50] [PUSH_UI_BLACKOUT] blackoutView=false, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, type=0 [08:28:50] [PUSH_UI] Message 19184 already in memory - skipping insert [08:28:50] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19184, AnyHashable("message_data"): { datesent = "2026-01-26 07:28:48"; "file_name" = ""; message = "Babyyy\Ud83d\Udc8b\Ud83d\Udc8b\U2665\Ufe0f"; "message_id" = 19184; "message_type" = 0; "prev_session_message_id" = 19183; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] [08:28:50] [PUSH_EMBED_VC] Message 19184 already in memory - skipping [08:28:50] [PUSH] ⚡ Embedded message handled directly in ViewController [08:28:50] [PUSH] Parsed message_id: 19184 [08:28:50] [PUSH] Parsed operation_type: 0 [08:28:50] [PUSH] Taking direct action: opType=0, messageId=19184 [08:28:50] [PUSH] TakeActionFromPush called: OperationType=0, MessageIds=19184 [08:28:50] [PUSH] ⚡ Message 19184 already in memory - skipping duplicate notification entirely [08:28:50] [PUSH] Silent push received [08:28:50] [PUSH_EMBED] 📩 Received embedded message: id=19184, type=0, sender=Esra [08:28:50] [PUSH_EMBED] ✅ Saved message 19184 to local DB (sync) [08:28:50] [PUSH_EMBED] Fetching evolution data for message 19184 in background [08:28:50] [PUSH_EMBED] ✅ Fully processed message 19184 [08:28:50] [PUSH] Embedded message handled instantly from silent push [08:28:50] [PUSH_UI] 🔔 handlePushMessageReceived CALLED [08:28:50] [PUSH_UI_BLACKOUT] blackoutView=false, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, type=0 [08:28:50] [PUSH_UI] Message 19184 already in memory - skipping insert [08:28:50] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU, AnyHashable("message_id"): 19184, AnyHashable("message_data"): { datesent = "2026-01-26 07:28:48"; "file_name" = ""; message = "Babyyy\Ud83d\Udc8b\Ud83d\Udc8b\U2665\Ufe0f"; "message_id" = 19184; "message_type" = 0; "prev_session_message_id" = 19183; "sender_id" = "EDAD55A1-003F-415D-AA60-672B34B504FE"; "sender_name" = Esra; "session_id" = ILUIWU; timer = 0; }] [08:28:50] [PUSH_EMBED_VC] Message 19184 already in memory - skipping [08:28:50] [PUSH] ⚡ Embedded message handled directly in ViewController [08:28:50] [PUSH] Parsed message_id: 19184 [08:28:50] [PUSH] Parsed operation_type: 0 [08:28:50] [PUSH] Taking direct action: opType=0, messageId=19184 [08:28:50] [PUSH] TakeActionFromPush called: OperationType=0, MessageIds=19184 [08:28:50] [PUSH] ⚡ Message 19184 already in memory - skipping duplicate notification entirely [08:28:50] [INCREMENTAL_SYNC] ✅ Found 1 new messages [08:28:50] [BLACKOUT_DEBUG] blackoutView=nil, newMessages.count=1 [08:28:50] [RELOAD_TAB] ⏳ Already pending, waiting for debounce [08:28:50] [WS_EVENT] ✅ Incremental refresh complete, newMsgCount=53 [08:28:50] [PUSH_EMBED] Got evolution data for message 19184, saving to local DB [08:28:50] [PUSH_EMBED] Saved evolution data for message 19184 [08:28:50] [PUSH_EMBED] Got evolution data for message 19184, saving to local DB [08:28:50] [PUSH_EMBED] Saved evolution data for message 19184 [08:28:50] [PUSH_EMBED] Got evolution data for message 19184, saving to local DB [08:28:50] [PUSH_EMBED] Saved evolution data for message 19184 [08:28:50] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=53, first5Ids=[19131, 19133, 19134, 19135, 19136] [08:28:50] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:50] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:28:50] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:28:50] [EVOLUTION_FILTER] 📝 Updated lastSeenMessageId after marking as read: 19183 → 19184 [08:28:50] [CELL_UPLOAD] configure: msgId=19175, file=6bc3a9f1a52e9ae0.png, senderId=EYE-SYSTEM-00000000-0000-0000-0000-000000000000, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:28:50] [CELL_UPLOAD] → not my message, setting complete [08:28:50] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=6bc3a9f1a52e9ae0.png, overlayExists=true [08:28:53] [PUSH] Silent push received [08:28:53] [PUSH_EMBED] No embedded message_data in notification [08:28:53] [PUSH] No embedded data, pre-loading messages from server [08:28:53] [PUSH_PRELOAD] Fetching messages for instant display cache [08:28:53] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [08:28:53] [PRELOAD_CACHE] Preserving 3 push-inserted messages: [19134, 19133, 19131] [08:28:53] [PUSH_PRELOAD] ⚡ Pre-cached 53 messages for instant display (preserved 3 from push) [08:28:53] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [08:28:53] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("message_id"): 19184, AnyHashable("session_id"): ILUIWU, AnyHashable("operation_type"): 3] [08:28:53] [PUSH] Parsed message_id: 19184 [08:28:53] [PUSH] Parsed operation_type: 3 [08:28:53] [PUSH] Taking direct action: opType=3, messageId=19184 [08:28:53] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19184 [08:28:53] [CLIENT_SIG] Event received: type=3 messageId=19184 [08:28:53] [WS_EVENT] Received event: type=3, messageId=19184 [08:28:53] [WS_EVENT] Read receipt for message 19184 by Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [08:28:54] [LIFECYCLE] App resigning active - cleared crash flag [08:28:54] [CLIENT_SIG] Client connected: Esra (EDAD55A1-003F-415D-AA60-672B34B504FE) on session 'ILUIWU' (my session: 'ILUIWU') [08:28:55] [SECURITY] sceneDidEnterBackground - isAuthenticated=true [08:28:55] [SECURITY] Saved background timestamp [08:28:55] [LIFECYCLE] App entering background - cleared crash flag [08:28:55] [CLIENT_SIG] Disconnecting [08:28:55] [LIFECYCLE] App entering background - disconnecting connections and stopping audio [08:28:55] [WS] stopSignalingAndPeer called - isQueryOnly=true, connectionStr=iosILUIWU, wsState=-1 [08:28:55] In cleanupPeer [08:28:55] In cleanupPeer [08:28:55] [LIFECYCLE] WebRTC audio disabled [08:28:55] [LIFECYCLE] AVAudioSession deactivated [08:28:55] [LIFECYCLE] All connections stopped [08:28:55] [CLIENT_SIG] WebSocket closed with code 1001 [08:28:55] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1) [08:28:55] [SERVER] Stopped reconnect polling [08:28:55] Will request stop of video 0 [08:28:55] Will request stop of video 0 [08:28:55] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=http://crivello.dyndns.org:8081/, NSErrorFailingURLKey=http://crivello.dyndns.org:8081/} [08:28:55] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2) [08:28:55] [PIP] Removing 0 tracks from PiP for connection 0 [08:28:55] [PIP] ✅ All tracks removed for connection 0 [08:28:55] [PIP] Removing 0 tracks from PiP for connection 0 [08:28:55] [PIP] ✅ All tracks removed for connection 0 [08:56:46] [CLIENT_SIG] Connecting to session ILUIWU as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [08:56:46] [PUSH] Notification tapped - session_id: ILUIWU [08:56:46] [PUSH] Max message_id before tap: 19184 [08:56:46] [PUSH] Stored pending session: ILUIWU [08:56:46] [PUSH_EMBED] No embedded message_data in notification [08:56:46] [PUSH] Pre-loading messages on notification tap... [08:56:46] [PUSH_PRELOAD] Fetching messages for instant display cache [08:56:46] [SECURITY] Timeout check: elapsed=1671.0670239925385s, timeout=300.0s [08:56:46] [SECURITY] sceneWillEnterForeground - timeout exceeded, showing lock screen immediately [08:56:46] [AUTH] ✅ All guards passed, showing privacy cover [08:56:46] [LIFECYCLE] App entering foreground - restoring connections [08:56:46] [LIFECYCLE] Away > 2 minutes (1671s) - will scroll to bottom [08:56:46] [UPLOAD_RETRY] No pending uploads to retry [08:56:46] [LIFECYCLE] Merged 972 reactions from local DB [08:56:46] [LIFECYCLE] WebRTC audio re-enabled [08:56:46] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone) [08:56:46] [CLIENT_SIG] Setting up client signaling for session: ILUIWU [08:56:46] [CLIENT_SIG] Already connected/connecting to session ILUIWU [08:56:46] [VIEWER] Reconnecting after background - querying agents [08:56:46] [UNSENT_RETRY] Checking for unsent messages... [08:56:46] [PENDING_UPLOAD] Total pending upload messages: 0 [08:56:46] [UNSENT_RETRY] No unsent messages found [08:56:46] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [08:56:46] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=53, first5Ids=[19131, 19133, 19134, 19135, 19136] [08:56:46] [PRELOAD_CACHE] Preserving 4 push-inserted messages: [19135, 19134, 19133, 19131] [08:56:46] [PUSH_PRELOAD] ⚡ Pre-cached 54 messages for instant display (preserved 4 from push) [08:56:46] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:56:46] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:56:46] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:56:46] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [08:56:46] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("message_id"): 19185, AnyHashable("operation_type"): 0, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("session_id"): ILUIWU] [08:56:46] [PUSH] Parsed message_id: 19185 [08:56:46] [PUSH] Parsed operation_type: 0 [08:56:46] [PUSH] Taking direct action: opType=0, messageId=19185 [08:56:46] [PUSH] TakeActionFromPush called: OperationType=0, MessageIds=19185 [08:56:46] [PUSH] Handling message fetch for opType=0, messageId=19185 [08:56:46] [PUSH] Requesting URL: https://crivello.dyndns.org:443/WebRTC/chat/chat_get_messages.php?session_id=ILUIWU&viewer=1&messages=19185 [08:56:46] [CLIENT_SIG] WebSocket opened [08:56:46] [CLIENT_SIG] HELLO sent as client for session ILUIWU [08:56:46] [CLIENT_SIG] Connected! clientId=ZMz6dQ3t82BYjOtG [08:56:46] [CLIENT_SIG] Received 1 clients for session 'ILUIWU' (my session: 'ILUIWU') [08:56:46] [CLIENT_SIG] - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [08:56:46] [SECURITY] sceneDidBecomeActive - isAuthenticated=false, didEnterBackground=false [08:56:46] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow [08:56:46] [PUSH] handlePollEventsNotification userInfo: [:] [08:56:46] [PUSH] No message_id in userInfo [08:56:46] [PUSH] No operation_type in userInfo [08:56:46] [FAST_REFRESH] Evolution disabled - performing incremental sync [08:56:46] [FAST_REFRESH] Already have 53 messages - skipping local DB load [08:56:46] [FAST_REFRESH] About to call reloadMessagesForCurrentTab(), isMainThread=true, viewLoaded=true [08:56:46] [FAST_REFRESH] reloadMessagesForCurrentTab() called successfully [08:56:46] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=53 [08:56:46] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19185 [08:56:46] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=53, first5Ids=[19131, 19133, 19134, 19135, 19136] [08:56:47] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:56:47] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:56:47] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:56:47] [COMBINED_FETCH] Loaded 7947 read receipts, 974 messages with reactions [08:56:47] [FOREGROUND] Enriched 0 messages with readBy data from server [08:56:47] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=53, first5Ids=[19131, 19133, 19134, 19135, 19136] [08:56:47] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:56:47] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:56:47] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:56:47] [PIN_AUTH] Correct PIN [08:56:47] [SECURITY] Restored real session: ILUIWU [08:56:47] [SECURITY] Restored real session: ILUIWU [08:56:47] [AUTH] Authentication completed - updating UI only (data already fetched in foreground handler) [08:56:47] [AUTH] Cache had 54 messages, maxExistingId=19184, inserted 1 truly new [08:56:47] [AUTH] UI update complete [08:56:47] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU [08:56:47] [CLIENT_SIG] Already connected/connecting to session ILUIWU [08:56:47] [FAKE MODE] Exiting fake mode, restoring real session [08:56:47] [SECURITY] Restored real session: ILUIWU [08:56:47] [SECURITY] Saved real session: ILUIWU [08:56:47] [FAKE MODE] ✅ Restored real session: ILUIWU [08:56:47] [FAKE MODE] Loaded 50 messages (limited to page size) [08:56:47] [CELL_UPLOAD] configure: msgId=19185, file=05fe08044942bf44.jpg, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:56:47] [CELL_UPLOAD] → not my message, setting complete [08:56:47] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=05fe08044942bf44.jpg, overlayExists=true [08:56:47] [EVOLUTION_FILTER] 📝 Updated lastSeenMessageId after marking as read: 19184 → 19185 [08:56:47] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:56:47] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:56:47] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:56:47] DOWNLOADIIING t_05fe08044942bf44.jpg [08:56:47] DOWNLOADIIING 05fe08044942bf44.jpg [08:56:47] [MEDIA_DOWNLOAD] ✅ t_05fe08044942bf44.jpg complete [08:56:47] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=05fe08044942bf44.jpg, overlayExists=true [08:56:47] [MEDIA_DOWNLOAD] ✅ Set thumbnail for cell: 05fe08044942bf44.jpg from downloaded: t_05fe08044942bf44.jpg [08:56:47] [CELL_UPLOAD] configure: msgId=19185, file=05fe08044942bf44.jpg, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:56:47] [CELL_UPLOAD] → not my message, setting complete [08:56:47] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=05fe08044942bf44.jpg, overlayExists=true [08:56:47] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19136, 19137, 19138, 19139, 19140] [08:56:47] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:56:47] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:56:47] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:56:47] [CELL_UPLOAD] configure: msgId=19185, file=05fe08044942bf44.jpg, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:56:47] [CELL_UPLOAD] → not my message, setting complete [08:56:47] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=05fe08044942bf44.jpg, overlayExists=true [08:56:47] [MEDIA_DOWNLOAD] ✅ 05fe08044942bf44.jpg complete [08:56:47] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=05fe08044942bf44.jpg, overlayExists=true [08:56:47] [MEDIA_DOWNLOAD] ✅ Set thumbnail for cell: 05fe08044942bf44.jpg from downloaded: 05fe08044942bf44.jpg [08:56:47] [PUSH] Silent push received [08:56:47] [PUSH_EMBED] No embedded message_data in notification [08:56:47] [PUSH] No embedded data, pre-loading messages from server [08:56:47] [PUSH_PRELOAD] Fetching messages for instant display cache [08:56:48] [PUSH] Silent push received [08:56:48] [PUSH_EMBED] No embedded message_data in notification [08:56:48] [PUSH] No embedded data, pre-loading messages from server [08:56:48] [PUSH_PRELOAD] Fetching messages for instant display cache [08:56:49] [PUSH] get_message response: HTTP 200, 495 bytes [08:56:49] [PUSH] get_message response body: [{"message_type":1,"message_id":19185,"session_id":"ILUIWU","message":"","file_name":"05fe08044942bf44.jpg","msgread":0,"datesent":"2026-01-26 07:56:38","timer":0,"timer_started_at":null,"timer_played":0,"sender_id":"EDAD55A1-003F-415D-AA60-672B34B504FE","sender_name":"Esra","distance":null,"link_url":null,"link_title":null,"link_description":null,"link_image_url":null,"reply_to_id":null,"replied_message":null,"replied_sender_id":null,"replied_sender_name":null,"read_by":[],"reactions":[]}] [08:56:49] [PUSH] Updated readBy in allMessagesWithReadBy for message 19185: readBy=0 [08:56:49] [PUSH] Updated readBy in chatMessages for message 19185: readBy=0 [08:56:49] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":0,"removed_from_other_channels":0} [08:56:49] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [08:56:49] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [08:56:49] [CLIENT_SIG] Client connected: Esra (EDAD55A1-003F-415D-AA60-672B34B504FE) on session 'ILUIWU' (my session: 'ILUIWU') [08:56:49] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push) [08:56:49] [INCREMENTAL_SYNC] ✅ No new messages [08:56:49] [FAST_REFRESH] Incremental sync complete - 50 messages [08:56:49] [USER] ✅ User registered successfully [08:56:49] [PUSH] User registration after token update: success [08:56:49] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [08:56:49] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push) [08:56:49] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [08:56:49] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("message_id"): 19185, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { alert = { body = "New message received"; title = Eye; }; badge = 1; "content-available" = 1; sound = default; }, AnyHashable("operation_type"): 0] [08:56:49] [PUSH] Parsed message_id: 19185 [08:56:49] [PUSH] Parsed operation_type: 0 [08:56:49] [PUSH] Taking direct action: opType=0, messageId=19185 [08:56:49] [PUSH] TakeActionFromPush called: OperationType=0, MessageIds=19185 [08:56:49] [PUSH] ⚡ Message 19185 already in memory - skipping duplicate notification entirely [08:56:49] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [08:56:49] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("message_id"): 19185, AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] [08:56:49] [PUSH] Parsed message_id: 19185 [08:56:49] [PUSH] Parsed operation_type: 3 [08:56:49] [PUSH] Taking direct action: opType=3, messageId=19185 [08:56:49] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19185 [08:56:49] [COMBINED_FETCH] Loaded 7947 read receipts, 974 messages with reactions [08:56:49] [FAKE MODE] Enriched 50 messages with readBy data [08:56:49] [COMBINED_FETCH] Loaded 7947 read receipts, 974 messages with reactions [08:56:49] [FAST_REFRESH] Enriched 50 messages with readBy data [08:56:49] [RELOAD_TAB] ⏳ Already pending, waiting for debounce [08:56:50] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19136, 19137, 19138, 19139, 19140] [08:56:50] [CELL_UPLOAD] configure: msgId=19178, file=5728ffa32c3fe2c6.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [08:56:50] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [08:56:50] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=5728ffa32c3fe2c6.jpg, overlayExists=true [08:56:50] [CELL_UPLOAD] configure: msgId=19185, file=05fe08044942bf44.jpg, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:56:50] [CELL_UPLOAD] → not my message, setting complete [08:56:50] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=05fe08044942bf44.jpg, overlayExists=true [08:56:50] [PUSH] Silent push received [08:56:50] [PUSH_EMBED] No embedded message_data in notification [08:56:50] [PUSH] No embedded data, pre-loading messages from server [08:56:50] [PUSH_PRELOAD] Fetching messages for instant display cache [08:56:50] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [08:56:50] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push) [08:56:50] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [08:56:50] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("message_id"): 19185] [08:56:50] [PUSH] Parsed message_id: 19185 [08:56:50] [PUSH] Parsed operation_type: 3 [08:56:50] [PUSH] Taking direct action: opType=3, messageId=19185 [08:56:50] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19185 [08:56:51] [CLIENT_SIG] Event received: type=3 messageId=19185 [08:56:51] [WS_EVENT] Received event: type=3, messageId=19185 [08:56:51] [WS_EVENT] Read receipt for message 19185 by Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [08:56:53] [CLIENT_SIG] Client disconnected: Esra (EDAD55A1-003F-415D-AA60-672B34B504FE) on session 'ILUIWU' (my session: 'ILUIWU') [08:56:53] [CLIENT_SIG] Client disconnected: Esra (EDAD55A1-003F-415D-AA60-672B34B504FE) on session 'ILUIWU' (my session: 'ILUIWU') [08:57:01] [REPLY_DEBUG] 📤 didTapSend - Sending message WITHOUT reply [08:57:01] [SEND_MESSAGE] 📤 Sending message, currentMsgCount=50, isReloading=false [08:57:01] [SEND_MESSAGE] ✅ Added optimistic message id=-4 to arrays, newMsgCount=51 [08:57:01] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[-4, 19185, 19184, 19183, 19182] [08:57:01] [CELL_UPLOAD] configure: msgId=19185, file=05fe08044942bf44.jpg, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:57:01] [CELL_UPLOAD] → not my message, setting complete [08:57:01] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=05fe08044942bf44.jpg, overlayExists=true [08:57:01] [REPLY_DEBUG] ❌ cancelReply called - clearing messageToReplyTo [08:57:01] [REPLY_DEBUG] ⚠️ sendMessage HTTP BODY - No reply message captured [08:57:02] [CHAT] receive_message.php HTTP 200: {"ok":true,"message_id":19186,"session_id":"ILUIWU","message_type":0,"file_name":"","datesent_utc":"2026-01-26 07:57:01"} [08:57:02] [CHAT] receive_message.php JSON: ["datesent_utc": 2026-01-26 07:57:01, "file_name": , "message_id": 19186, "message_type": 0, "ok": 1, "session_id": ILUIWU] [08:57:02] [DB_UPGRADE] Upgrading message ID: -4 → 19186, preserveOriginalDate=false [08:57:02] [CLIENT_SIG] Event received: type=0 messageId=19186 [08:57:02] [WS_EVENT] Received event: type=0, messageId=19186 [08:57:02] [WS_EVENT] 📨 New message notification (msgId=19186) - triggering incremental refresh, currentMsgCount=51 [08:57:02] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=51 [08:57:02] [DB_UPGRADE] ✅ Upgraded -4 → 19186 with send_status=0, 1 row(s) affected [08:57:02] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19186 [08:57:02] [SEND_UPGRADE] ✅ Updated chatMessages[0].id: -4 → 19186 [08:57:02] [SEND_UPGRADE] ✅ Updated allMessagesWithReadBy[0].id: -4 → 19186 [08:57:02] ReloadData 9 [08:57:02] [INCREMENTAL_SYNC] ✅ No new messages [08:57:03] [CELL_UPLOAD] configure: msgId=19185, file=05fe08044942bf44.jpg, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:57:03] [CELL_UPLOAD] → not my message, setting complete [08:57:03] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=05fe08044942bf44.jpg, overlayExists=true [08:57:03] [WS_EVENT] ✅ Incremental refresh complete, newMsgCount=51 [08:57:05] [PUSH] Silent push received [08:57:05] [PUSH_EMBED] No embedded message_data in notification [08:57:05] [PUSH] No embedded data, pre-loading messages from server [08:57:05] [PUSH_PRELOAD] Fetching messages for instant display cache [08:57:05] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [08:57:05] [PRELOAD_CACHE] Preserving 1 push-inserted messages: [19136] [08:57:05] [PUSH_PRELOAD] ⚡ Pre-cached 51 messages for instant display (preserved 1 from push) [08:57:05] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [08:57:05] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("message_id"): 19186, AnyHashable("session_id"): ILUIWU, AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("operation_type"): 3] [08:57:05] [PUSH] Parsed message_id: 19186 [08:57:05] [PUSH] Parsed operation_type: 3 [08:57:05] [PUSH] Taking direct action: opType=3, messageId=19186 [08:57:05] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19186 [08:57:05] [CLIENT_SIG] Event received: type=3 messageId=19186 [08:57:05] [WS_EVENT] Received event: type=3, messageId=19186 [08:57:05] [WS_EVENT] Read receipt for message 19186 by Esra (EDAD55A1-003F-415D-AA60-672B34B504FE) [08:57:08] [CLIENT_SIG] Client connected: Esra (EDAD55A1-003F-415D-AA60-672B34B504FE) on session 'ILUIWU' (my session: 'ILUIWU') [08:57:18] [CLIENT_SIG] Client disconnected: Esra (EDAD55A1-003F-415D-AA60-672B34B504FE) on session 'ILUIWU' (my session: 'ILUIWU') [08:57:18] [CLIENT_SIG] Client disconnected: Esra (EDAD55A1-003F-415D-AA60-672B34B504FE) on session 'ILUIWU' (my session: 'ILUIWU') [08:57:21] [REPLY_DEBUG] 📤 didTapSend - Sending message WITHOUT reply [08:57:21] [SEND_MESSAGE] 📤 Sending message, currentMsgCount=51, isReloading=false [08:57:21] [SEND_MESSAGE] ✅ Added optimistic message id=-5 to arrays, newMsgCount=52 [08:57:21] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[-5, 19186, 19185, 19184, 19183] [08:57:21] [CELL_UPLOAD] configure: msgId=19185, file=05fe08044942bf44.jpg, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:57:21] [CELL_UPLOAD] → not my message, setting complete [08:57:21] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=05fe08044942bf44.jpg, overlayExists=true [08:57:21] [REPLY_DEBUG] ❌ cancelReply called - clearing messageToReplyTo [08:57:21] [REPLY_DEBUG] ⚠️ sendMessage HTTP BODY - No reply message captured [08:57:22] [TAP_REPLAY] 🔄 replayEvolutionAnimation called for messageId=19183 [08:57:22] [TAP_REPLAY] 📦 Found message: text.count=11, evolutionData.isEmpty=true [08:57:22] [TAP_REPLAY] 📡 No local evolution data - fetching from server [08:57:22] [TAP_REPLAY] 🔍 Server response keys: ["created_at", "evolution", "has_evolution", "message_id", "ok"] [08:57:22] [TAP_REPLAY] ✅ Successfully fetched 11 events from server - calling playEvolutionInline [08:57:22] [EVOLUTION] 🎬 playEvolutionInline called for message 19183 with 11 events [08:57:22] [UPDATE_CELL] 🔍 updateMessageCell called for message 19183 [08:57:22] [UPDATE_CELL] Initial targetRowIndex=49 [08:57:22] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [08:57:22] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText=' ', text='Pleeeaaaase' [08:57:22] [UPDATE_CELL] ✅ Updating ChatCell label to: ' ' [08:57:22] [UPDATE_CELL] 🔍 updateMessageCell called for message 19183 [08:57:22] [UPDATE_CELL] Initial targetRowIndex=49 [08:57:22] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [08:57:22] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='P', text='Pleeeaaaase' [08:57:22] [UPDATE_CELL] ✅ Updating ChatCell label to: 'P' [08:57:22] [UPDATE_CELL] 🔍 updateMessageCell called for message 19183 [08:57:22] [UPDATE_CELL] Initial targetRowIndex=49 [08:57:22] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [08:57:22] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Pl', text='Pleeeaaaase' [08:57:22] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Pl' [08:57:22] [UPDATE_CELL] 🔍 updateMessageCell called for message 19183 [08:57:22] [UPDATE_CELL] Initial targetRowIndex=49 [08:57:22] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [08:57:22] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Ple', text='Pleeeaaaase' [08:57:22] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Ple' [08:57:22] [CLIENT_SIG] Event received: type=0 messageId=19187 [08:57:22] [WS_EVENT] Received event: type=0, messageId=19187 [08:57:22] [CHAT] receive_message.php HTTP 200: {"ok":true,"message_id":19187,"session_id":"ILUIWU","message_type":0,"file_name":"","datesent_utc":"2026-01-26 07:57:21"} [08:57:22] [WS_EVENT] 📨 New message notification (msgId=19187) - triggering incremental refresh, currentMsgCount=52 [08:57:22] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=52 [08:57:22] [CHAT] receive_message.php JSON: ["datesent_utc": 2026-01-26 07:57:21, "ok": 1, "message_type": 0, "file_name": , "session_id": ILUIWU, "message_id": 19187] [08:57:22] [DB_UPGRADE] Upgrading message ID: -5 → 19187, preserveOriginalDate=false [08:57:22] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19186 [08:57:22] [UPDATE_CELL] 🔍 updateMessageCell called for message 19183 [08:57:22] [UPDATE_CELL] Initial targetRowIndex=49 [08:57:22] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [08:57:22] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Plee', text='Pleeeaaaase' [08:57:22] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Plee' [08:57:22] [DB_UPGRADE] ✅ Upgraded -5 → 19187 with send_status=0, 1 row(s) affected [08:57:22] [SEND_UPGRADE] ✅ Updated chatMessages[0].id: -5 → 19187 [08:57:22] [SEND_UPGRADE] ✅ Updated allMessagesWithReadBy[0].id: -5 → 19187 [08:57:22] ReloadData 9 [08:57:22] [CELL_UPLOAD] configure: msgId=19185, file=05fe08044942bf44.jpg, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:57:22] [CELL_UPLOAD] → not my message, setting complete [08:57:22] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=05fe08044942bf44.jpg, overlayExists=true [08:57:22] [INCREMENTAL_SYNC] ✅ Found 1 new messages [08:57:22] [BLACKOUT_DEBUG] blackoutView=nil, newMessages.count=1 [08:57:22] [WS_EVENT] ✅ Incremental refresh complete, newMsgCount=52 [08:57:22] [UPDATE_CELL] 🔍 updateMessageCell called for message 19183 [08:57:22] [UPDATE_CELL] Initial targetRowIndex=49 [08:57:22] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [08:57:22] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Pleee', text='Pleeeaaaase' [08:57:22] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Pleee' [08:57:23] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[19136, 19137, 19138, 19139, 19140] [08:57:23] [CELL_UPLOAD] configure: msgId=19185, file=05fe08044942bf44.jpg, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [08:57:23] [CELL_UPLOAD] → not my message, setting complete [08:57:23] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=05fe08044942bf44.jpg, overlayExists=true [08:57:23] [UPDATE_CELL] 🔍 updateMessageCell called for message 19183 [08:57:23] [UPDATE_CELL] Initial targetRowIndex=49 [08:57:23] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [08:57:23] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Pleeea', text='Pleeeaaaase' [08:57:23] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Pleeea' [08:57:23] [UPDATE_CELL] 🔍 updateMessageCell called for message 19183 [08:57:23] [UPDATE_CELL] Initial targetRowIndex=49 [08:57:23] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [08:57:23] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Pleeeaa', text='Pleeeaaaase' [08:57:23] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Pleeeaa' [08:57:23] [UPDATE_CELL] 🔍 updateMessageCell called for message 19183 [08:57:23] [UPDATE_CELL] Initial targetRowIndex=49 [08:57:23] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [08:57:23] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Pleeeaaa', text='Pleeeaaaase' [08:57:23] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Pleeeaaa' [08:57:23] [UPDATE_CELL] 🔍 updateMessageCell called for message 19183 [08:57:23] [UPDATE_CELL] Initial targetRowIndex=49 [08:57:23] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [08:57:23] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Pleeeaaaa', text='Pleeeaaaase' [08:57:23] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Pleeeaaaa' [08:57:24] [UPDATE_CELL] 🔍 updateMessageCell called for message 19183 [08:57:24] [UPDATE_CELL] Initial targetRowIndex=49 [08:57:24] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [08:57:24] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Pleeeaaaas', text='Pleeeaaaase' [08:57:24] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Pleeeaaaas' [08:57:24] [UPDATE_CELL] 🔍 updateMessageCell called for message 19183 [08:57:24] [UPDATE_CELL] Initial targetRowIndex=49 [08:57:24] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [08:57:24] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Pleeeaaaase', text='Pleeeaaaase' [08:57:24] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Pleeeaaaase' [08:57:24] [UPDATE_CELL] 🔍 updateMessageCell called for message 19183 [08:57:24] [UPDATE_CELL] Initial targetRowIndex=49 [08:57:24] [UPDATE_CELL] Rebuilt chatRows, count=54 [08:57:24] [UPDATE_CELL] After rebuild targetRowIndex=49 [08:57:24] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=false, evolutionText='Pleeeaaaase', text='Pleeeaaaase' [08:57:24] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Pleeeaaaase' [08:57:24] [EVOLUTION] ✅ Animation complete for message 19183 - marking as read now [08:57:25] [PUSH] Silent push received [08:57:25] [PUSH_EMBED] No embedded message_data in notification [08:57:25] [PUSH] No embedded data, pre-loading messages from server [08:57:25] [PUSH_PRELOAD] Fetching messages for instant display cache [08:57:26] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [08:57:26] [PRELOAD_CACHE] Preserving 2 push-inserted messages: [19137, 19136] [08:57:26] [PUSH_PRELOAD] ⚡ Pre-cached 52 messages for instant display (preserved 2 from push) [08:57:26] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [08:57:26] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("message_id"): 19187, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU] [08:57:26] [PUSH] Parsed message_id: 19187 [08:57:26] [PUSH] Parsed operation_type: 3 [08:57:26] [PUSH] Taking direct action: opType=3, messageId=19187 [08:57:26] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19187 [08:57:26] [CLIENT_SIG] Event received: type=3 messageId=19187 [08:57:26] [WS_EVENT] Received event: type=3, messageId=19187 [08:57:26] [WS_EVENT] Read receipt for message 19187 by Esra (EDAD55A1-003F-415D-AA60-672B34B504FE) [08:57:28] [CLIENT_SIG] Client connected: Esra (EDAD55A1-003F-415D-AA60-672B34B504FE) on session 'ILUIWU' (my session: 'ILUIWU') [08:57:28] [LIFECYCLE] App resigning active - cleared crash flag [08:57:29] [SECURITY] sceneDidEnterBackground - isAuthenticated=true [08:57:29] [SECURITY] Saved background timestamp [08:57:29] [LIFECYCLE] App entering background - cleared crash flag [08:57:29] [CLIENT_SIG] Disconnecting [08:57:29] [LIFECYCLE] App entering background - disconnecting connections and stopping audio [08:57:29] [WS] stopSignalingAndPeer called - isQueryOnly=true, connectionStr=iosILUIWU, wsState=-1 [08:57:29] In cleanupPeer [08:57:29] In cleanupPeer [08:57:29] [LIFECYCLE] WebRTC audio disabled [08:57:29] [LIFECYCLE] AVAudioSession deactivated [08:57:29] [LIFECYCLE] All connections stopped [08:57:29] [CLIENT_SIG] WebSocket closed with code 1001 [08:57:29] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1) [08:57:29] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=http://crivello.dyndns.org:8081/, NSErrorFailingURLKey=http://crivello.dyndns.org:8081/} [08:57:29] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2) [08:57:29] [SERVER] Stopped reconnect polling [08:57:29] Will request stop of video 0 [08:57:29] Will request stop of video 0 [08:57:29] [PIP] Removing 0 tracks from PiP for connection 0 [08:57:29] [PIP] ✅ All tracks removed for connection 0 [08:57:29] [PIP] Removing 0 tracks from PiP for connection 0 [08:57:29] [PIP] ✅ All tracks removed for connection 0 [09:11:31] [CRASH] No crash detected [09:11:31] [FONT] Roboto fonts loaded successfully: Roboto-Regular [09:11:31] [FONT] ChatFont.regular(18) returns: Roboto-Regular, family: Roboto [09:11:31] [GIPHY] SDK not available - using REST API fallback [09:11:31] [BACKGROUND] Background fetch enabled [09:11:31] [PUSH] APNs token: 6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c [09:11:31] [CLEANUP] No old timer messages to delete [09:11:31] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":0,"removed_from_other_channels":0} [09:11:31] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [09:11:31] [USER] ✅ User registered successfully [09:11:31] [PUSH] User registration after token update: success [09:25:04] [SECURITY] Initial launch - timeout exceeded (1654.5156960487366s > 300.0s) [09:25:04] [AUTH] Starting PIN authentication [09:25:04] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU [09:25:04] [CLIENT_SIG] Connecting to session ILUIWU as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:25:04] [SECURITY] sceneDidBecomeActive - isAuthenticated=false, didEnterBackground=false [09:25:04] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow [09:25:04] [CLIENT_SIG] WebSocket opened [09:25:04] [CLIENT_SIG] HELLO sent as client for session ILUIWU [09:25:04] [CLIENT_SIG] Connected! clientId=y_tEFtPEtHjSylv7 [09:25:04] [PRELOAD] ⚡ Starting message pre-load during authentication (since_id=19187)... [09:25:04] [CLIENT_SIG] Received 1 clients for session 'ILUIWU' (my session: 'ILUIWU') [09:25:04] [CLIENT_SIG] - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:25:04] [PRELOAD] No messages or parse error [09:25:05] [PIN_AUTH] Correct PIN [09:25:05] [SECURITY] Restored real session: ILUIWU [09:25:05] [SECURITY] Restored real session: ILUIWU [09:25:05] [SECURITY] Saved real session: ILUIWU [09:25:05] [SCENE] Launched directly to chat view with sessionId: ILUIWU [09:25:05] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone) [09:25:05] Documents Directory: /var/mobile/Containers/Data/Application/75035B73-3F30-4A91-A570-8F3EEDE21803/Documents [09:25:05] [THEME] Applying current theme [09:25:05] [CHAT] Applied day theme (mode: day) [09:25:05] [SECURITY] Saved real session: ILUIWU [09:25:05] [CLIENT_SIG] Setting up client signaling for session: ILUIWU [09:25:05] [CLIENT_SIG] Already connected/connecting to session ILUIWU [09:25:05] [NETWORK] Network monitor started [09:25:05] [NETWORK] Status changed: connected [09:25:05] Did transition [09:25:05] [UPLOAD_QUEUE] Found 0 pending uploads to resume [09:25:05] [MODE] 🔍 updateModeUI called - currentTabIndex=0, sessionId=ILUIWU [09:25:05] [VIEWER] Screen lock enabled - normal idle behavior [09:25:05] [QUERY] 🔍 Creating query connection for iOS slave: iosILUIWU [09:25:05] [VCC] ========== VideoConnectionClass INIT ========== [09:25:05] [VCC] Session: iosILUIWU, ViewIdx: 0, AgentId: nil [09:25:05] [DATA AUDIO] ========== setupWebRTC() START ========== [09:25:05] [DATA AUDIO] Using data channel for audio - bypassing WebRTC audio device [09:25:05] [DATA AUDIO] Creating encoder/decoder factories... [09:25:05] [CODEC] Viewer - Available video codecs: H264, H264, VP8, VP9, AV1 [09:25:05] [CODEC] Viewer selected encoder: AV1 (best quality) [09:25:05] [DATA AUDIO] Creating RTCPeerConnectionFactory... [09:25:05] [DATA AUDIO] ✅ Factory created [09:25:05] [DATA AUDIO] RTCAudioSession locked [09:25:05] [DATA AUDIO] Set useManualAudio=true, isAudioEnabled=false [09:25:05] [DATA AUDIO] RTCAudioSession unlocked [09:25:05] [DATA AUDIO] Skipping AVAudioSession config - handled by DataChannelAudioPlayer [09:25:05] [VCC] Initial ICE servers: ["stun:stun.l.google.com:19302", "turn:crivello.dyndns.org:3478?transport=udp", "turn:crivello.dyndns.org:3478?transport=tcp", "turns:crivello.dyndns.org:5349?transport=tcp"] [09:25:05] [WS] Creating new WebSocket - isQueryOnly=false, connectionStr=iosILUIWU [09:25:05] [WS] Opening session at ws://crivello.dyndns.org:8081/ [09:25:05] [QUERY] ✅ tempQueryConnection created for iosILUIWU [09:25:05] [VIEWER_INIT] Already have 50 messages - just filtering for tab [09:25:05] [EVENT_POLL] Event polling disabled - using WebSocket events instead [09:25:05] [ORIENTATION] Updated pagingScrollView height to 247.5 for width 440.0 [09:25:05] Did transition [09:25:05] [TABLEVIEW] cellForRowAt index 0 out of bounds (count=0) [09:25:05] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [09:25:05] [CHUNK] Merged 972 reactions synchronously [09:25:05] [RELOAD_TAB] ⏳ Already pending, waiting for debounce [09:25:05] [GALLERY_DB] Loading ALL media messages for session: ILUIWU [09:25:05] [MIGRATION] No messages need sender_name backfill [09:25:05] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=50 [09:25:05] [GALLERY_DB] Raw datesent for msg 19185: '2026-01-26 07:56:38' [09:25:05] [GALLERY_DB] Raw datesent for msg 19178: '2026-01-26 06:37:12' [09:25:05] [GALLERY_DB] Raw datesent for msg 19175: '2026-01-26 01:00:43' [09:25:05] [USER] ✅ User registered successfully [09:25:05] [USER] User registration successful [09:25:06] [GALLERY_DB] ✅ Loaded 503 media messages [09:25:06] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19187 [09:25:06] [INCREMENTAL_SYNC] ✅ No new messages [09:25:06] [GALLERY] Filtered 503 -> 463 (only with local thumbnails) [09:25:06] [GALLERY] First 5 after sort (newest first): [09:25:06] [GALLERY] 0: id=19185, date=2026-01-26 07:56:38, file=05fe08044942bf44.jpg [09:25:06] [GALLERY] 1: id=19178, date=2026-01-26 06:37:12, file=5728ffa32c3fe2c6.jpg [09:25:06] [GALLERY] 2: id=19175, date=2026-01-26 01:00:43, file=6bc3a9f1a52e9ae0.png [09:25:06] [GALLERY] 3: id=19149, date=2026-01-25 11:35:26, file=6490cf96bed7f640.jpeg [09:25:06] [GALLERY] 4: id=19146, date=2026-01-25 11:23:09, file=a6c858d97a01507d.jpeg [09:25:06] [SCROLL_BTN] Showing button - 32pt from bottom > half 22pt [09:25:06] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19138, 19139, 19140, 19141, 19142] [09:25:06] [EMOJI] ✅ Loaded 451 emoji-to-GIF mappings [09:25:06] [CELL_UPLOAD] configure: msgId=19145, file=01fe690830ee5ba7.jpg, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [09:25:06] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [09:25:06] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=01fe690830ee5ba7.jpg, overlayExists=true [09:25:06] [CELL_UPLOAD] configure: msgId=19185, file=05fe08044942bf44.jpg, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [09:25:06] [CELL_UPLOAD] → not my message, setting complete [09:25:06] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=05fe08044942bf44.jpg, overlayExists=true [09:25:06] [SERVER] Starting reconnect polling (5s interval) [09:25:06] [ICONS] Screen width: 440.0, Tab spacing: 75.5 [09:25:06] [ICONS] Offset applied: -14.6 [09:25:06] [ICONS] New left margin: 11.2, New right margin: 11.3 [09:25:06] [ICONS] Chat center: (31.2, 87.0) [09:25:06] [ICONS] Gallery center: (106.7, 87.0), deltaX: 75.5 [09:25:06] [ICONS] Camera center: (182.2, 87.0), deltaX: 75.5 [09:25:06] [ICONS] Settings center: (257.7, 87.0), deltaX: 75.5 [09:25:06] [ICONS] Lock centerX: 333.2, deltaX from Settings: 75.5 [09:25:06] [ICONS] Bell centerX: 408.7, deltaX from Lock: 75.5 [09:25:06] [ICONS] LEFT MARGIN (screen left to Chat left): 11.2 [09:25:06] [ICONS] RIGHT MARGIN (Bell right to screen right): 11.3 [09:25:06] [ICONS] Screen width: 440.0 [09:25:06] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU [09:25:06] Trying API base: https://crivello.dyndns.org:443/WebRTC/public/ [09:25:06] Trying API base: https://crivello.dyndns.org:443/WebRTC/public/ [09:25:06] Token POST → https://crivello.dyndns.org:443/WebRTC/public/new_session.php?sid=iosILUIWU [09:25:06] [PURGE] ⚠️ Media cache purge DISABLED for debugging [09:25:06] [UNSENT_RETRY] Checking for unsent messages... [09:25:06] [UPLOAD_RECOVERY] ========== CHECKING FOR MISSING UPLOADS ========== [09:25:06] [UPLOAD_RECOVERY] User ID: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF [09:25:06] [UPLOAD_RECOVERY] Session: ILUIWU [09:25:06] [UPLOAD_RECOVERY] ✅ No stuck uploads found [09:25:06] [UPLOAD_RECOVERY] Checking recent media messages on server... [09:25:06] [UPLOAD_RECOVERY] 📋 Recent media: msgId=19178, file=5728ffa32c3fe2c6.jpg, upload_status=complete [09:25:06] [UPLOAD_RECOVERY] 📋 Recent media: msgId=19145, file=01fe690830ee5ba7.jpg, upload_status=complete [09:25:06] [UPLOAD_RECOVERY] 📋 Recent media: msgId=19014, file=af34e8f2aaf5b05e.jpg, upload_status=complete [09:25:06] [UPLOAD_RECOVERY] 📋 Recent media: msgId=18981, file=2852c0089aed517a.jpg, upload_status=complete [09:25:06] [UPLOAD_RECOVERY] Verifying 4 media files exist on server... [09:25:06] [PENDING_UPLOAD] Total pending upload messages: 0 [09:25:06] [UNSENT_RETRY] No unsent messages found [09:25:06] new_session POST ok: token len=157 [09:25:06] HELLO → sent (fetched token, role=query) [09:25:06] [SIG] hello_ok received for query connection - ready to query agents [09:25:06] [SIG] get_agents request sent for sessionId=ILUIWU [09:25:06] [SIG] get_agents request sent for sessionId=iosILUIWU [09:25:06] [SERVER] Stopped reconnect polling [09:25:06] [SIG] agents_list received: [] [09:25:06] [SIG] agents_list received: [] [09:25:06] [UPLOAD_RECOVERY] ✅ All media files verified on server [09:25:06] [COMBINED_FETCH] Loaded 7949 read receipts, 974 messages with reactions [09:25:06] [READBY_ENRICH] Enriched 50 messages with readBy data [09:25:06] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[19138, 19139, 19140, 19141, 19142] [09:25:06] [CELL_UPLOAD] configure: msgId=19185, file=05fe08044942bf44.jpg, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [09:25:06] [CELL_UPLOAD] → not my message, setting complete [09:25:06] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=05fe08044942bf44.jpg, overlayExists=true [09:25:07] [MENU] dismissAnyExistingMenu called [09:25:07] [MENU] dismissAnyExistingMenu completed [09:25:07] [EMOJI_PICKER] Starting emoji picker for message 19185 [09:25:07] [MENU] Created button 'Reply' at index 0 [09:25:07] [MENU] Created button 'Hide' at index 1 [09:25:07] [MENU] Created button 'Delete' at index 2 [09:25:07] [MENU] Menu added at y=623.0 [09:25:07] [EMOJI_PICKER] ✅ Fetched 6 recent emojis [09:25:07] [EMOJI_PICKER] ✅ Creating picker with 6 recent emojis [09:25:07] [EMOJI_PICKER] ✅ Picker shown at y=253.0 [09:25:08] [REACTION] add ❤️ to message 19185 (alreadyReacted: false) [09:25:08] [MENU] dismissAnyExistingMenu called [09:25:08] [MENU] Found menu with tag 9999, removing [09:25:08] [MENU] Removing blur effect [09:25:08] [MENU] Removing floating message snapshot [09:25:08] [MENU] Dismissing emoji picker [09:25:08] [MENU] Recorded dismissal time for debounce [09:25:08] [MENU] dismissAnyExistingMenu completed [09:25:08] [REACTION] Added ❤️ reaction to message 19185 [09:25:08] [CELL_UPLOAD] configure: msgId=19185, file=05fe08044942bf44.jpg, senderId=EDAD55A1-003F-415D-AA60-672B34B504FE, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [09:25:08] [CELL_UPLOAD] → not my message, setting complete [09:25:08] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=05fe08044942bf44.jpg, overlayExists=true [09:25:15] [INFO] Current channel: 'ILUIWU' [09:25:15] [KEYCHAIN] ✅ Password retrieved for channel: ILUIWU [09:25:15] [INFO] Retrieved password from keychain: length=7 [09:25:18] [SECURITY] Saved real session: ILUIWU2 [09:25:18] [KEYCHAIN] ✅ Password deleted for channel: ILUIWU2 [09:25:18] [KEYCHAIN] ✅ Password saved for channel: ILUIWU2 [09:25:18] [CHANNEL_SWITCH] 🔄 handleChannelChanged received: newChannel='ILUIWU2', role='viewer' [09:25:18] [INFO] Device registered to 'ILUIWU2': HTTP 200: {"status":"ok","session_id":"ILUIWU2","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":0,"removed_from_other_channels":1} [09:25:18] [CHANNEL_SWITCH] ⏹️ Stopped event polling timer [09:25:18] [CHANNEL_SWITCH] 🔄 Old sessionId='ILUIWU', switching to 'ILUIWU2' [09:25:18] [CHANNEL_SWITCH] 🗑️ Cleared local DB for old session 'ILUIWU' [09:25:18] [CHANNEL_SWITCH] 🗑️ Cleared memory arrays [09:25:18] [SECURITY] Saved real session: ILUIWU2 [09:25:18] [CHANNEL_SWITCH] ✅ Updated sessionId to 'ILUIWU2' [09:25:18] [CLIENT_SIG] Setting up client signaling for session: ILUIWU2 [09:25:18] [CLIENT_SIG] Disconnecting [09:25:18] [CLIENT_SIG] Connecting to session ILUIWU2 as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:25:18] [CHANNEL_SWITCH] 🔌 Reconnected client signaling to 'ILUIWU2' [09:25:18] [CHANNEL_SWITCH] 📤 Calling refreshAllFromServer... [09:25:18] [REFRESH_ALL] 🔄 refreshAllFromServer called from: channelSwitch, currentMsgCount=0 [09:25:18] [REFRESH_ALL] 📸 Captured 0 message IDs before request [09:25:18] [REFRESH_ALL] 📡 Fetching URL: https://crivello.dyndns.org:443/WebRTC/chat/chat_get_messages.php?viewer=1&session_id=ILUIWU2&mark_read=0&viewer_id=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF [09:25:18] [CLIENT_SIG] WebSocket closed with code 1001 [09:25:18] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1) [09:25:18] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=http://crivello.dyndns.org:8081/, NSErrorFailingURLKey=http://crivello.dyndns.org:8081/} [09:25:18] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2) [09:25:18] [TABLEVIEW] cellForRowAt index 0 out of bounds (count=0) [09:25:19] [CLIENT_SIG] WebSocket opened [09:25:19] [CLIENT_SIG] HELLO sent as client for session ILUIWU2 [09:25:19] [CLIENT_SIG] Connected! clientId=_UbTFR0xjzw9tkAl [09:25:19] [CLIENT_SIG] Received 1 clients for session 'ILUIWU2' (my session: 'ILUIWU2') [09:25:19] [CLIENT_SIG] - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:25:19] [PENDING_UPLOAD] Total pending upload messages: 0 [09:25:19] [PENDING_UPLOAD] Preserved 0 pending messages before server refresh [09:25:19] DOWNLOADIIING t_8f2a2de52768ee96.jpg [09:25:19] DOWNLOADIIING t_674db2cc35314166.jpg [09:25:19] DOWNLOADIIING t_6864b3095b79fd0d.jpg [09:25:19] ReloadData 14 (all 4 media thumbnails loaded) - applying tab 3 filtering [09:25:19] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=0, first5Ids=[] [09:25:19] [RELOAD_TAB] ⚠️ allMessagesWithReadBy is EMPTY - falling back to DB [09:25:19] [RELOAD_TAB] Loaded 50 messages from DB (limited) [09:25:19] [EVOLUTION_FILTER] 📝 Updated lastSeenMessageId after marking as read: 0 → 1744 [09:25:19] [EVOLUTION_FILTER] 📝 Updated lastSeenMessageId after marking as read: 1744 → 4195 [09:25:20] [CHANNEL_SWITCH] 📊 About to set loaded messages. Count=10572 [09:25:20] [REFRESH_ALL] 📊 Server returned 10572 messages [09:25:20] [REFRESH_ALL] 📊 Final merge: server=10572, preserved=0, total=10572 [09:25:20] [REFRESH_ALL] 📊 Displaying 50 of 10572 messages, hasMore=true [09:25:20] [IMAGE] refreshAllFromServer: set hasMoreMessages=true, offset=50 [09:25:20] [CHANNEL_SWITCH] ✅ Completion handler called! allMessagesWithReadBy.count=50, currentTabIndex=3 [09:25:20] [CHANNEL_SWITCH] 🔄 Switching tab UI to tab 0 [09:25:20] [EVENT_POLL] Event polling disabled - using WebSocket events instead [09:25:20] [CHANNEL_SWITCH] ✅ Channel switch complete! [09:25:20] [CELL_UPLOAD] configure: msgId=4147, file=8f9a7578f1011fa7.png, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [09:25:20] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [09:25:20] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8f9a7578f1011fa7.png, overlayExists=true [09:25:20] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[1744, 4195, 1781, 1817, 1818] [09:25:20] [CELL_UPLOAD] configure: msgId=4147, file=8f9a7578f1011fa7.png, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [09:25:20] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [09:25:20] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8f9a7578f1011fa7.png, overlayExists=true [09:25:22] [CLIENT_SIG] Already connected/connecting to session ILUIWU2 [09:26:14] [TAP_REPLAY] 🔄 replayEvolutionAnimation called for messageId=17157 [09:26:14] [TAP_REPLAY] 📦 Found message: text.count=2, evolutionData.isEmpty=true [09:26:14] [TAP_REPLAY] 📡 No local evolution data - fetching from server [09:26:14] [TAP_REPLAY] 🔍 Server response keys: ["created_at", "evolution", "has_evolution", "message_id", "ok"] [09:26:14] [TAP_REPLAY] ✅ Successfully fetched 3 events from server - calling playEvolutionInline [09:26:14] [EVOLUTION] 🎬 playEvolutionInline called for message 17157 with 3 events [09:26:14] [UPDATE_CELL] 🔍 updateMessageCell called for message 17157 [09:26:14] [UPDATE_CELL] Initial targetRowIndex=59 [09:26:14] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [09:26:14] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText=' ', text='Je' [09:26:14] [UPDATE_CELL] ✅ Updating ChatCell label to: ' ' [09:26:14] [UPDATE_CELL] 🔍 updateMessageCell called for message 17157 [09:26:14] [UPDATE_CELL] Initial targetRowIndex=59 [09:26:14] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [09:26:14] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='J', text='Je' [09:26:14] [UPDATE_CELL] ✅ Updating ChatCell label to: 'J' [09:26:14] [UPDATE_CELL] 🔍 updateMessageCell called for message 17157 [09:26:14] [UPDATE_CELL] Initial targetRowIndex=59 [09:26:14] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [09:26:14] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Je', text='Je' [09:26:14] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Je' [09:26:14] [UPDATE_CELL] 🔍 updateMessageCell called for message 17157 [09:26:14] [UPDATE_CELL] Initial targetRowIndex=59 [09:26:14] [UPDATE_CELL] ⚡ Updated chatRows in place (evolution mode) [09:26:14] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=true, evolutionText='Je ', text='Je' [09:26:14] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Je ' [09:26:14] [UPDATE_CELL] 🔍 updateMessageCell called for message 17157 [09:26:14] [UPDATE_CELL] Initial targetRowIndex=59 [09:26:14] [UPDATE_CELL] Rebuilt chatRows, count=63 [09:26:14] [UPDATE_CELL] After rebuild targetRowIndex=59 [09:26:14] [UPDATE_CELL] 📝 Message state: isPlayingEvolution=false, evolutionText='Je', text='Je' [09:26:14] [UPDATE_CELL] ✅ Updating ChatCell label to: 'Je' [09:26:14] [UPDATE_CELL] 📐 Height recalculated with scroll position preserved [09:26:14] [EVOLUTION] ✅ Animation complete for message 17157 - marking as read now [09:26:14] [MENU] dismissAnyExistingMenu called [09:26:14] [MENU] dismissAnyExistingMenu completed [09:26:14] [CELL_UPLOAD] configure: msgId=3275, file=979ed1b3bb8031c5.heic, senderId=96488CEA-CEE8-4DD8-AD91-6475B3A94A3E, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=false, hasFilename=true, isGiphy=false, uploadStatus=0 [09:26:14] [CELL_UPLOAD] → not my message, setting complete [09:26:14] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=979ed1b3bb8031c5.heic, overlayExists=true [09:26:15] [SCROLL_BTN] Showing button - 380pt from bottom > half 379pt [09:26:15] [MENU] dismissAnyExistingMenu called [09:26:15] [MENU] dismissAnyExistingMenu completed [09:27:11] [LIFECYCLE] App resigning active - cleared crash flag [09:27:11] [SECURITY] sceneDidEnterBackground - isAuthenticated=true [09:27:11] [SECURITY] Saved background timestamp [09:27:11] [LIFECYCLE] App entering background - cleared crash flag [09:27:11] [CLIENT_SIG] Disconnecting [09:27:11] [LIFECYCLE] App entering background - disconnecting connections and stopping audio [09:27:11] [WS] stopSignalingAndPeer called - isQueryOnly=true, connectionStr=iosILUIWU, wsState=0 [09:27:11] [WS] Canceling WebSocket for query connection to iosILUIWU [09:27:11] In cleanupPeer [09:27:11] In cleanupPeer [09:27:11] [LIFECYCLE] WebRTC audio disabled [09:27:11] [LIFECYCLE] AVAudioSession deactivated [09:27:11] [LIFECYCLE] All connections stopped [09:27:11] [CLIENT_SIG] WebSocket closed with code 1001 [09:27:11] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1) [09:27:11] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=http://crivello.dyndns.org:8081/, NSErrorFailingURLKey=http://crivello.dyndns.org:8081/} [09:27:11] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2) [09:27:11] [SERVER] Stopped reconnect polling [09:27:11] Will request stop of video 0 [09:27:11] Will request stop of video 0 [09:27:11] [WS] WebSocket task completed with error - isQueryOnly=true: cancelled [09:27:11] [WS] Query connection error - cleaning up all agent connections and views [09:27:11] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected [09:27:11] [WS] Query connection failed - cleaning up all agent connections and views [09:27:11] [PIP] Removing 0 tracks from PiP for connection 0 [09:27:11] [PIP] ✅ All tracks removed for connection 0 [09:27:11] [PIP] Removing 0 tracks from PiP for connection 0 [09:27:11] [PIP] ✅ All tracks removed for connection 0 [09:27:11] [CLEANUP] ======================================== [09:27:11] [CLEANUP] Cleaning up all agent connections and views [09:27:11] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [09:27:11] [CLEANUP] Stopped and removed 0 video connections [09:27:11] [CLEANUP] Removed 0 video views [09:27:11] [CLEANUP] Removed 0 feed scroll views [09:27:11] [CLEANUP] Removed 0 status labels [09:27:11] [CLEANUP] Reset agent query state [09:27:11] [CLEANUP] Updated page indicator [09:27:11] [CLEANUP] Rebuilt video layout [09:27:11] [CLEANUP] ✅ All agent connections and views cleaned up [09:27:11] [CLEANUP] ======================================== [09:27:11] [SERVER] Skipping reconnect polling - app is in background [09:27:11] [WS] URLSession invalidated successfully [09:27:11] [CLEANUP] ======================================== [09:27:11] [CLEANUP] Cleaning up all agent connections and views [09:27:11] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [09:27:11] [CLEANUP] Stopped and removed 0 video connections [09:27:11] [CLEANUP] Removed 0 video views [09:27:11] [CLEANUP] Removed 0 feed scroll views [09:27:11] [CLEANUP] Removed 0 status labels [09:27:11] [CLEANUP] Reset agent query state [09:27:11] [CLEANUP] Updated page indicator [09:27:11] [CLEANUP] Rebuilt video layout [09:27:11] [CLEANUP] ✅ All agent connections and views cleaned up [09:27:11] [CLEANUP] ======================================== [09:27:11] [SERVER] Skipping reconnect polling - app is in background [09:29:22] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU [09:29:22] [WS] Opening session at ws://crivello.dyndns.org:8081/ [09:29:22] [PUSH] Silent push received [09:29:22] [PUSH_EMBED] No embedded message_data in notification [09:29:22] [PUSH] No embedded data, pre-loading messages from server [09:29:22] [PUSH_PRELOAD] Fetching messages for instant display cache [09:29:22] [PUSH] Silent push received [09:29:22] [PUSH_EMBED] No embedded message_data in notification [09:29:22] [PUSH] No embedded data, pre-loading messages from server [09:29:22] [PUSH_PRELOAD] Fetching messages for instant display cache [09:29:22] [PUSH] Silent push received [09:29:22] [PUSH_EMBED] No embedded message_data in notification [09:29:22] [PUSH] No embedded data, pre-loading messages from server [09:29:22] [PUSH_PRELOAD] Fetching messages for instant display cache [09:29:22] [PUSH] Silent push received [09:29:22] [PUSH_EMBED] No embedded message_data in notification [09:29:22] [PUSH] No embedded data, pre-loading messages from server [09:29:22] [PUSH_PRELOAD] Fetching messages for instant display cache [09:29:22] [PUSH] Silent push received [09:29:22] [PUSH_EMBED] No embedded message_data in notification [09:29:22] [PUSH] No embedded data, pre-loading messages from server [09:29:22] [PUSH_PRELOAD] Fetching messages for instant display cache [09:29:22] [PUSH] Silent push received [09:29:22] [PUSH_EMBED] No embedded message_data in notification [09:29:22] [PUSH] No embedded data, pre-loading messages from server [09:29:22] [PUSH_PRELOAD] Fetching messages for instant display cache [09:29:22] [CLIENT_SIG] Connecting to session ILUIWU2 as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:29:22] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU [09:29:22] HELLO → sent (cached token, role=query) [09:29:22] [SIG] hello_ok received for query connection - ready to query agents [09:29:22] [SIG] get_agents request sent for sessionId=ILUIWU2 [09:29:22] [SIG] get_agents request sent for sessionId=iosILUIWU2 [09:29:22] [SERVER] Stopped reconnect polling [09:29:22] [SIG] agents_list received: [] [09:29:22] [SIG] agents_list received: [] [09:29:22] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [09:29:22] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push) [09:29:22] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [09:29:22] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push) [09:29:22] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [09:29:22] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push) [09:29:22] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [09:29:22] [CLIENT_SIG] WebSocket opened [09:29:22] [CLIENT_SIG] HELLO sent as client for session ILUIWU2 [09:29:22] [CLIENT_SIG] Connected! clientId=B_4ThsqLnvoRpDuX [09:29:22] [CLIENT_SIG] Received 2 clients for session 'ILUIWU2' (my session: 'ILUIWU2') [09:29:22] [CLIENT_SIG] - Lolo (3F6A8511-914A-4BE0-9540-3582F1C2DD43) [09:29:22] [CLIENT_SIG] - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:29:22] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push) [09:29:22] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [09:29:22] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push) [09:29:22] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [09:29:22] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [09:29:22] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [09:29:22] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [09:29:22] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("session_id"): ILUIWU2, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 14693, AnyHashable("aps"): { "content-available" = 1; }] [09:29:22] [PUSH] Parsed message_id: 14693 [09:29:22] [PUSH] Parsed operation_type: 3 [09:29:22] [PUSH] Taking direct action: opType=3, messageId=14693 [09:29:22] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=14693 [09:29:22] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("operation_type"): 3, AnyHashable("message_id"): 17161, AnyHashable("session_id"): ILUIWU2, AnyHashable("aps"): { "content-available" = 1; }] [09:29:22] [PUSH] Parsed message_id: 17161 [09:29:22] [PUSH] Parsed operation_type: 3 [09:29:22] [PUSH] Taking direct action: opType=3, messageId=17161 [09:29:22] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=17161 [09:29:22] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("session_id"): ILUIWU2, AnyHashable("message_id"): 17158, AnyHashable("operation_type"): 3, AnyHashable("aps"): { "content-available" = 1; }] [09:29:22] [PUSH] Parsed message_id: 17158 [09:29:22] [PUSH] Parsed operation_type: 3 [09:29:22] [PUSH] Taking direct action: opType=3, messageId=17158 [09:29:22] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=17158 [09:29:22] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("operation_type"): 3, AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("message_id"): 14692, AnyHashable("session_id"): ILUIWU2] [09:29:22] [PUSH] Parsed message_id: 14692 [09:29:22] [PUSH] Parsed operation_type: 3 [09:29:22] [PUSH] Taking direct action: opType=3, messageId=14692 [09:29:22] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=14692 [09:29:22] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [09:29:23] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [09:29:23] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push) [09:29:23] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [09:29:23] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("message_id"): 17157, AnyHashable("operation_type"): 3, AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("session_id"): ILUIWU2] [09:29:23] [PUSH] Parsed message_id: 17157 [09:29:23] [PUSH] Parsed operation_type: 3 [09:29:23] [PUSH] Taking direct action: opType=3, messageId=17157 [09:29:23] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=17157 [09:29:23] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU2, AnyHashable("message_id"): 17159] [09:29:23] [PUSH] Parsed message_id: 17159 [09:29:23] [PUSH] Parsed operation_type: 3 [09:29:23] [PUSH] Taking direct action: opType=3, messageId=17159 [09:29:23] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=17159 [09:29:26] [SECURITY] Timeout check: elapsed=134.9616777896881s, timeout=300.0s [09:29:26] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU2 [09:29:26] [CLIENT_SIG] Already connected/connecting to session ILUIWU2 [09:29:26] [LIFECYCLE] App entering foreground - restoring connections [09:29:26] [LIFECYCLE] Away > 2 minutes (134s) - will scroll to bottom [09:29:26] [UPLOAD_RETRY] No pending uploads to retry [09:29:26] [LIFECYCLE] Merged 978 reactions from local DB [09:29:26] [LIFECYCLE] WebRTC audio re-enabled [09:29:26] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone) [09:29:26] [CLIENT_SIG] Setting up client signaling for session: ILUIWU2 [09:29:26] [CLIENT_SIG] Already connected/connecting to session ILUIWU2 [09:29:26] [VIEWER] Reconnecting after background - querying agents [09:29:26] [UNSENT_RETRY] Checking for unsent messages... [09:29:26] [PENDING_UPLOAD] Total pending upload messages: 0 [09:29:26] [UNSENT_RETRY] No unsent messages found [09:29:26] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={NSDescription=Software caused connection abort} [09:29:26] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1) [09:29:26] [CLIENT_SIG] Task completed with error: Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={NSDescription=Software caused connection abort, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalWebSocketTask .<1>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask .<1>} [09:29:26] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2) [09:29:26] [WS] Connection failed: The operation couldn’t be completed. Software caused connection abort [09:29:26] [WS] Query connection failed - cleaning up all agent connections and views [09:29:26] [WS] WebSocket task completed with error - isQueryOnly=true: The operation couldn’t be completed. Software caused connection abort [09:29:26] [WS] Query connection error - cleaning up all agent connections and views [09:29:26] [CLEANUP] ======================================== [09:29:26] [CLEANUP] Cleaning up all agent connections and views [09:29:26] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [09:29:26] [CLEANUP] Stopped and removed 0 video connections [09:29:26] [CLEANUP] Removed 0 video views [09:29:26] [CLEANUP] Removed 0 feed scroll views [09:29:26] [CLEANUP] Removed 0 status labels [09:29:26] [CLEANUP] Reset agent query state [09:29:26] [CLEANUP] Updated page indicator [09:29:26] [CLEANUP] Rebuilt video layout [09:29:26] [CLEANUP] ✅ All agent connections and views cleaned up [09:29:26] [CLEANUP] ======================================== [09:29:26] [SERVER] Starting reconnect polling (5s interval) [09:29:26] [CLEANUP] ======================================== [09:29:26] [CLEANUP] Cleaning up all agent connections and views [09:29:26] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [09:29:26] [CLEANUP] Stopped and removed 0 video connections [09:29:26] [CLEANUP] Removed 0 video views [09:29:26] [CLEANUP] Removed 0 feed scroll views [09:29:26] [CLEANUP] Removed 0 status labels [09:29:26] [CLEANUP] Reset agent query state [09:29:26] [CLEANUP] Updated page indicator [09:29:26] [CLEANUP] Rebuilt video layout [09:29:26] [CLEANUP] ✅ All agent connections and views cleaned up [09:29:26] [CLEANUP] ======================================== [09:29:26] [SERVER] Starting reconnect polling (5s interval) [09:29:26] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[1744, 4195, 1781, 1817, 1818] [09:29:26] [CELL_UPLOAD] configure: msgId=4147, file=8f9a7578f1011fa7.png, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [09:29:26] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [09:29:26] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8f9a7578f1011fa7.png, overlayExists=true [09:29:27] [SECURITY] sceneDidBecomeActive - isAuthenticated=true, didEnterBackground=true [09:29:27] [SECURITY] Within timeout - cleared background flag [09:29:27] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow [09:29:27] [PUSH] handlePollEventsNotification userInfo: [:] [09:29:27] [PUSH] No message_id in userInfo [09:29:27] [PUSH] No operation_type in userInfo [09:29:27] [FAST_REFRESH] Evolution disabled - performing incremental sync [09:29:27] [FAST_REFRESH] Already have 50 messages - skipping local DB load [09:29:27] [FAST_REFRESH] About to call reloadMessagesForCurrentTab(), isMainThread=true, viewLoaded=true [09:29:27] [FAST_REFRESH] reloadMessagesForCurrentTab() called successfully [09:29:27] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=50 [09:29:27] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 17161 [09:29:27] [COMBINED_FETCH] Loaded 10000 read receipts, 5 messages with reactions [09:29:27] [FOREGROUND] Enriched 6 messages with readBy data from server [09:29:27] [RELOAD_TAB] ⏳ Already pending, waiting for debounce [09:29:27] [INCREMENTAL_SYNC] ✅ No new messages [09:29:27] [FAST_REFRESH] Incremental sync complete - 50 messages [09:29:27] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[1744, 4195, 1781, 1817, 1818] [09:29:27] [CELL_UPLOAD] configure: msgId=4147, file=8f9a7578f1011fa7.png, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [09:29:27] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [09:29:27] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8f9a7578f1011fa7.png, overlayExists=true [09:29:28] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU [09:29:28] [WS] Opening session at ws://crivello.dyndns.org:8081/ [09:29:28] [COMBINED_FETCH] Loaded 10000 read receipts, 5 messages with reactions [09:29:28] [FAST_REFRESH] Enriched 50 messages with readBy data [09:29:28] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU [09:29:28] HELLO → sent (cached token, role=query) [09:29:28] [SIG] hello_ok received for query connection - ready to query agents [09:29:28] [SIG] get_agents request sent for sessionId=ILUIWU2 [09:29:28] [SIG] get_agents request sent for sessionId=iosILUIWU2 [09:29:28] [SERVER] Stopped reconnect polling [09:29:28] [SIG] agents_list received: [] [09:29:28] [SIG] agents_list received: [] [09:29:28] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[1744, 4195, 1781, 1817, 1818] [09:29:28] [CELL_UPLOAD] configure: msgId=4147, file=8f9a7578f1011fa7.png, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [09:29:28] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [09:29:28] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8f9a7578f1011fa7.png, overlayExists=true [09:29:28] [MUTE] Status sent to server: muted=1, response code=200 [09:29:28] [MUTE] Status sent to server: muted=1, response code=200 [09:29:29] [LIFECYCLE] App resigning active - cleared crash flag [09:29:30] [SECURITY] sceneDidEnterBackground - isAuthenticated=true [09:29:30] [SECURITY] Saved background timestamp [09:29:30] [LIFECYCLE] App entering background - cleared crash flag [09:29:30] [CLIENT_SIG] Disconnecting [09:29:30] [LIFECYCLE] App entering background - disconnecting connections and stopping audio [09:29:30] [WS] stopSignalingAndPeer called - isQueryOnly=true, connectionStr=iosILUIWU, wsState=0 [09:29:30] [WS] Canceling WebSocket for query connection to iosILUIWU [09:29:30] In cleanupPeer [09:29:30] In cleanupPeer [09:29:30] [LIFECYCLE] WebRTC audio disabled [09:29:30] [LIFECYCLE] AVAudioSession deactivated [09:29:30] [LIFECYCLE] All connections stopped [09:29:30] [SERVER] Stopped reconnect polling [09:29:30] Will request stop of video 0 [09:29:30] [WS] WebSocket task completed with error - isQueryOnly=true: cancelled [09:29:30] [WS] Query connection error - cleaning up all agent connections and views [09:29:30] Will request stop of video 0 [09:29:30] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected [09:29:30] [WS] Query connection failed - cleaning up all agent connections and views [09:29:30] [PIP] Removing 0 tracks from PiP for connection 0 [09:29:30] [PIP] ✅ All tracks removed for connection 0 [09:29:30] [CLEANUP] ======================================== [09:29:30] [CLEANUP] Cleaning up all agent connections and views [09:29:30] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [09:29:30] [CLEANUP] Stopped and removed 0 video connections [09:29:30] [CLEANUP] Removed 0 video views [09:29:30] [CLEANUP] Removed 0 feed scroll views [09:29:30] [CLEANUP] Removed 0 status labels [09:29:30] [CLEANUP] Reset agent query state [09:29:30] [CLEANUP] Updated page indicator [09:29:30] [CLEANUP] Rebuilt video layout [09:29:30] [CLEANUP] ✅ All agent connections and views cleaned up [09:29:30] [CLEANUP] ======================================== [09:29:30] [SERVER] Skipping reconnect polling - app is in background [09:29:30] [WS] URLSession invalidated successfully [09:29:30] [PIP] Removing 0 tracks from PiP for connection 0 [09:29:30] [PIP] ✅ All tracks removed for connection 0 [09:29:30] [CLEANUP] ======================================== [09:29:30] [CLEANUP] Cleaning up all agent connections and views [09:29:30] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [09:29:30] [CLEANUP] Stopped and removed 0 video connections [09:29:30] [CLEANUP] Removed 0 video views [09:29:30] [CLEANUP] Removed 0 feed scroll views [09:29:30] [CLEANUP] Removed 0 status labels [09:29:30] [CLEANUP] Reset agent query state [09:29:30] [CLEANUP] Updated page indicator [09:29:30] [CLEANUP] Rebuilt video layout [09:29:30] [CLEANUP] ✅ All agent connections and views cleaned up [09:29:30] [CLEANUP] ======================================== [09:29:30] [SERVER] Skipping reconnect polling - app is in background [09:29:50] [SECURITY] Timeout check: elapsed=20.46915102005005s, timeout=300.0s [09:29:50] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU2 [09:29:50] [CLIENT_SIG] Connecting to session ILUIWU2 as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:29:50] [LIFECYCLE] App entering foreground - restoring connections [09:29:50] [UPLOAD_RETRY] No pending uploads to retry [09:29:50] [LIFECYCLE] Merged 978 reactions from local DB [09:29:50] [LIFECYCLE] WebRTC audio re-enabled [09:29:50] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone) [09:29:50] [CLIENT_SIG] Setting up client signaling for session: ILUIWU2 [09:29:50] [CLIENT_SIG] Already connected/connecting to session ILUIWU2 [09:29:50] [VIEWER] Reconnecting after background - querying agents [09:29:50] [UNSENT_RETRY] Checking for unsent messages... [09:29:50] [PENDING_UPLOAD] Total pending upload messages: 0 [09:29:50] [UNSENT_RETRY] No unsent messages found [09:29:50] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU [09:29:50] [WS] Opening session at ws://crivello.dyndns.org:8081/ [09:29:50] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[1744, 4195, 1781, 1817, 1818] [09:29:50] [CELL_UPLOAD] configure: msgId=4147, file=8f9a7578f1011fa7.png, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [09:29:50] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [09:29:50] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8f9a7578f1011fa7.png, overlayExists=true [09:29:51] [SECURITY] sceneDidBecomeActive - isAuthenticated=true, didEnterBackground=true [09:29:51] [SECURITY] Within timeout - cleared background flag [09:29:51] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow [09:29:51] [PUSH] handlePollEventsNotification userInfo: [:] [09:29:51] [PUSH] No message_id in userInfo [09:29:51] [PUSH] No operation_type in userInfo [09:29:51] [FAST_REFRESH] Evolution disabled - performing incremental sync [09:29:51] [FAST_REFRESH] Already have 50 messages - skipping local DB load [09:29:51] [FAST_REFRESH] About to call reloadMessagesForCurrentTab(), isMainThread=true, viewLoaded=true [09:29:51] [FAST_REFRESH] reloadMessagesForCurrentTab() called successfully [09:29:51] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=50 [09:29:51] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 17161 [09:29:51] [CLIENT_SIG] WebSocket opened [09:29:51] [CLIENT_SIG] HELLO sent as client for session ILUIWU2 [09:29:51] [CLIENT_SIG] Connected! clientId=THLpV5xPKE__LYVh [09:29:51] [CLIENT_SIG] Received 2 clients for session 'ILUIWU2' (my session: 'ILUIWU2') [09:29:51] [CLIENT_SIG] - Lolo (3F6A8511-914A-4BE0-9540-3582F1C2DD43) [09:29:51] [CLIENT_SIG] - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:29:51] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU [09:29:51] HELLO → sent (cached token, role=query) [09:29:51] [SIG] hello_ok received for query connection - ready to query agents [09:29:51] [SIG] get_agents request sent for sessionId=ILUIWU2 [09:29:51] [SIG] get_agents request sent for sessionId=iosILUIWU2 [09:29:51] [SERVER] Stopped reconnect polling [09:29:51] [SIG] agents_list received: [] [09:29:51] [SIG] agents_list received: [] [09:29:51] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[1744, 4195, 1781, 1817, 1818] [09:29:51] [CELL_UPLOAD] configure: msgId=4147, file=8f9a7578f1011fa7.png, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [09:29:51] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [09:29:51] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8f9a7578f1011fa7.png, overlayExists=true [09:29:52] [PUSH] Silent push received [09:29:52] [PUSH_EMBED] 📩 Received embedded message: id=19189, type=0, sender=Lolo [09:29:52] [PUSH_EMBED] ✅ Saved message 19189 to local DB (sync) [09:29:52] [PUSH_EMBED] Inserted message 19189 into existing cache (now 51 messages) [09:29:52] [PUSH_EMBED] Fetching evolution data for message 19189 in background [09:29:52] [PUSH_EMBED] ✅ Fully processed message 19189 [09:29:52] [PUSH] Embedded message handled instantly from silent push [09:29:52] [PUSH_UI] 🔔 handlePushMessageReceived CALLED [09:29:52] [PUSH_UI_BLACKOUT] blackoutView=false, senderId=3F6A8511-914A-4BE0-9540-3582F1C2DD43, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, type=0 [09:29:52] [PUSH_UI] Inserted message 19189 into UI (now 51 messages) [09:29:52] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("message_data"): { datesent = "2026-01-26 08:29:44"; "file_name" = ""; message = Msg2; "message_id" = 19189; "message_type" = 0; "prev_session_message_id" = 19188; "sender_id" = "3F6A8511-914A-4BE0-9540-3582F1C2DD43"; "sender_name" = Lolo; "session_id" = ILUIWU2; timer = 0; }, AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("operation_type"): 0, AnyHashable("session_id"): ILUIWU2, AnyHashable("message_id"): 19189] [09:29:52] [PUSH_EMBED_VC] Message 19189 already in memory - skipping [09:29:52] [PUSH] ⚡ Embedded message handled directly in ViewController [09:29:52] [PUSH] Parsed message_id: 19189 [09:29:52] [PUSH] Parsed operation_type: 0 [09:29:52] [PUSH] Taking direct action: opType=0, messageId=19189 [09:29:52] [PUSH] TakeActionFromPush called: OperationType=0, MessageIds=19189 [09:29:52] [PUSH] ⚡ Message 19189 already in memory - skipping duplicate notification entirely [09:29:52] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[19189, 1744, 4195, 1781, 1817] [09:29:52] [CELL_UPLOAD] configure: msgId=4147, file=8f9a7578f1011fa7.png, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [09:29:52] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [09:29:52] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8f9a7578f1011fa7.png, overlayExists=true [09:29:55] [MENU] dismissAnyExistingMenu called [09:29:55] [MENU] dismissAnyExistingMenu completed [09:29:55] [EVOLUTION_FILTER] 📝 Updated lastSeenMessageId after marking as read: 17161 → 19189 [09:29:59] [CLIENT_SIG] Event received: type=0 messageId=19189 [09:29:59] [WS_EVENT] Received event: type=0, messageId=19189 [09:29:59] [WS_EVENT] 📨 New message notification (msgId=19189) - triggering incremental refresh, currentMsgCount=51 [09:29:59] [INCREMENTAL_SYNC] ⚠️ Already reloading - skipping incremental refresh [09:29:59] [WS_EVENT] ✅ Incremental refresh complete, newMsgCount=51 [09:29:59] [INCREMENTAL_SYNC] ✅ Found 2 new messages [09:29:59] [BLACKOUT_DEBUG] blackoutView=nil, newMessages.count=2 [09:29:59] [FAST_REFRESH] Incremental sync complete - 52 messages [09:29:59] [PUSH_EMBED] Got evolution data for message 19189, saving to local DB [09:29:59] [PUSH_EMBED] Saved evolution data for message 19189 [09:29:59] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[1744, 4195, 1781, 1817, 1818] [09:29:59] [CELL_UPLOAD] configure: msgId=4147, file=8f9a7578f1011fa7.png, senderId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, isMyMessage=true, hasFilename=true, isGiphy=false, uploadStatus=0 [09:29:59] [CELL_UPLOAD] → no active progress, using msg.uploadStatus=0 → complete [09:29:59] [CELL_UPLOAD] setUploadStatus(complete, progress=0.0) for file=8f9a7578f1011fa7.png, overlayExists=true [09:30:00] [COMBINED_FETCH] Loaded 10000 read receipts, 5 messages with reactions [09:30:00] [FAST_REFRESH] Enriched 52 messages with readBy data [09:30:00] [COMBINED_FETCH] Loaded 10000 read receipts, 5 messages with reactions [09:30:00] [FOREGROUND] Enriched 1 messages with readBy data from server [09:30:00] [RELOAD_TAB] ⏳ Already pending, waiting for debounce [09:30:00] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[1744, 4195, 1781, 1817, 1818] [09:30:01] [WS] WebSocket task completed with error - isQueryOnly=true: The request timed out. [09:30:01] [WS] Query connection error - cleaning up all agent connections and views [09:30:01] [CLEANUP] ======================================== [09:30:01] [CLEANUP] Cleaning up all agent connections and views [09:30:01] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [09:30:01] [CLEANUP] Stopped and removed 0 video connections [09:30:01] [CLEANUP] Removed 0 video views [09:30:01] [CLEANUP] Removed 0 feed scroll views [09:30:01] [CLEANUP] Removed 0 status labels [09:30:01] [CLEANUP] Reset agent query state [09:30:01] [CLEANUP] Updated page indicator [09:30:01] [CLEANUP] Rebuilt video layout [09:30:01] [CLEANUP] ✅ All agent connections and views cleaned up [09:30:01] [CLEANUP] ======================================== [09:30:01] [SERVER] Starting reconnect polling (5s interval) [09:30:01] [PUSH] Silent push received [09:30:01] [PUSH_EMBED] No embedded message_data in notification [09:30:01] [PUSH] No embedded data, pre-loading messages from server [09:30:01] [PUSH_PRELOAD] Fetching messages for instant display cache [09:30:01] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [09:30:01] [PUSH] Silent push received [09:30:01] [PUSH_EMBED] No embedded message_data in notification [09:30:01] [PUSH] No embedded data, pre-loading messages from server [09:30:01] [PUSH_PRELOAD] Fetching messages for instant display cache [09:30:01] [PRELOAD_CACHE] Preserving 2 push-inserted messages: [4195, 1744] [09:30:01] [PUSH_PRELOAD] ⚡ Pre-cached 52 messages for instant display (preserved 2 from push) [09:30:01] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [09:30:01] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19189, AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("session_id"): ILUIWU2] [09:30:01] [PUSH] Parsed message_id: 19189 [09:30:01] [PUSH] Parsed operation_type: 3 [09:30:01] [PUSH] Taking direct action: opType=3, messageId=19189 [09:30:01] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19189 [09:30:01] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [09:30:01] [PRELOAD_CACHE] Preserving 2 push-inserted messages: [4195, 1744] [09:30:01] [PUSH_PRELOAD] ⚡ Pre-cached 52 messages for instant display (preserved 2 from push) [09:30:01] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [09:30:01] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("session_id"): ILUIWU2, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19188, AnyHashable("aps"): { "content-available" = 1; }] [09:30:01] [PUSH] Parsed message_id: 19188 [09:30:01] [PUSH] Parsed operation_type: 3 [09:30:01] [PUSH] Taking direct action: opType=3, messageId=19188 [09:30:01] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19188 [09:30:06] [SERVER] Polling - attempting to reconnect... [09:30:10] [CLIENT_SIG] Event received: type=3 messageId=19189 [09:30:10] [WS_EVENT] Received event: type=3, messageId=19189 [09:30:10] [WS_EVENT] Read receipt for message 19189 by Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:30:10] [CLIENT_SIG] Event received: type=3 messageId=19188 [09:30:10] [WS_EVENT] Received event: type=3, messageId=19188 [09:30:10] [WS_EVENT] Read receipt for message 19188 by Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:30:11] [SERVER] Polling - attempting to reconnect... [09:30:16] [SERVER] Polling - attempting to reconnect... [09:30:21] [SERVER] Polling - attempting to reconnect... [09:30:26] [SERVER] Polling - attempting to reconnect... [09:30:31] [SERVER] Polling - attempting to reconnect... [09:30:36] [SERVER] Polling - attempting to reconnect... [09:30:41] [SERVER] Polling - attempting to reconnect... [09:30:46] [SERVER] Polling - attempting to reconnect... [09:30:51] [SERVER] Polling - attempting to reconnect... [09:30:56] [SERVER] Polling - attempting to reconnect... [09:31:01] [SERVER] Polling - attempting to reconnect... [09:31:06] [SERVER] Polling - attempting to reconnect... [09:31:11] [SERVER] Polling - attempting to reconnect... [09:31:16] [SERVER] Polling - attempting to reconnect... [09:31:21] [SERVER] Polling - attempting to reconnect... [09:31:26] [SERVER] Polling - attempting to reconnect... [09:31:31] [SERVER] Polling - attempting to reconnect... [09:31:36] [SERVER] Polling - attempting to reconnect... [09:31:41] [SERVER] Polling - attempting to reconnect... [09:31:46] [SERVER] Polling - attempting to reconnect... [09:31:51] [SERVER] Polling - attempting to reconnect... [09:31:56] [SERVER] Polling - attempting to reconnect... [09:32:01] [SERVER] Polling - attempting to reconnect... [09:32:06] [SERVER] Polling - attempting to reconnect... [09:32:11] [SERVER] Polling - attempting to reconnect... [09:32:16] [SERVER] Polling - attempting to reconnect... [09:32:21] [SERVER] Polling - attempting to reconnect... [09:32:26] [SERVER] Polling - attempting to reconnect... [09:32:31] [SERVER] Polling - attempting to reconnect... [09:32:36] [SERVER] Polling - attempting to reconnect... [09:32:41] [SERVER] Polling - attempting to reconnect... [09:32:46] [SERVER] Polling - attempting to reconnect... [09:32:51] [SERVER] Polling - attempting to reconnect... [09:32:56] [SERVER] Polling - attempting to reconnect... [09:33:01] [SERVER] Polling - attempting to reconnect... [09:33:06] [SERVER] Polling - attempting to reconnect... [09:33:11] [SERVER] Polling - attempting to reconnect... [09:33:16] [SERVER] Polling - attempting to reconnect... [09:33:21] [SERVER] Polling - attempting to reconnect... [09:33:26] [SERVER] Polling - attempting to reconnect... [09:33:31] [SERVER] Polling - attempting to reconnect... [09:33:36] [SERVER] Polling - attempting to reconnect... [09:33:41] [SERVER] Polling - attempting to reconnect... [09:33:46] [SERVER] Polling - attempting to reconnect... [09:33:51] [SERVER] Polling - attempting to reconnect... [09:33:51] [LIFECYCLE] App resigning active - cleared crash flag [09:33:52] [SECURITY] sceneDidEnterBackground - isAuthenticated=true [09:33:52] [SECURITY] Saved background timestamp [09:33:52] [LIFECYCLE] App entering background - cleared crash flag [09:33:52] [CLIENT_SIG] Disconnecting [09:33:52] [LIFECYCLE] App entering background - disconnecting connections and stopping audio [09:33:52] [WS] stopSignalingAndPeer called - isQueryOnly=true, connectionStr=iosILUIWU, wsState=3 [09:33:52] [WS] Canceling WebSocket for query connection to iosILUIWU [09:33:52] In cleanupPeer [09:33:52] In cleanupPeer [09:33:52] [LIFECYCLE] WebRTC audio disabled [09:33:52] [LIFECYCLE] AVAudioSession deactivated [09:33:52] [LIFECYCLE] All connections stopped [09:33:52] [CLIENT_SIG] WebSocket closed with code 1001 [09:33:52] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1) [09:33:52] [SERVER] Stopped reconnect polling [09:33:52] [WS] URLSession invalidated successfully [09:33:52] Will request stop of video 0 [09:33:52] Will request stop of video 0 [09:33:52] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=http://crivello.dyndns.org:8081/, NSErrorFailingURLKey=http://crivello.dyndns.org:8081/} [09:33:52] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2) [09:33:52] [PIP] Removing 0 tracks from PiP for connection 0 [09:33:52] [PIP] ✅ All tracks removed for connection 0 [09:33:52] [PIP] Removing 0 tracks from PiP for connection 0 [09:33:52] [PIP] ✅ All tracks removed for connection 0 [09:43:50] [CRASH] No crash detected [09:43:50] [FONT] Roboto fonts loaded successfully: Roboto-Regular [09:43:50] [FONT] ChatFont.regular(18) returns: Roboto-Regular, family: Roboto [09:43:50] [GIPHY] SDK not available - using REST API fallback [09:43:50] [BACKGROUND] Background fetch enabled [09:43:50] [SECURITY] Initial launch - timeout exceeded (597.886655330658s > 300.0s) [09:43:50] [AUTH] Starting PIN authentication [09:43:50] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU2 [09:43:50] [CLIENT_SIG] Connecting to session ILUIWU2 as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:43:50] [SECURITY] sceneDidBecomeActive - isAuthenticated=false, didEnterBackground=false [09:43:50] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow [09:43:50] [CLEANUP] No old timer messages to delete [09:43:50] [PUSH] APNs token: 6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c [09:43:50] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU2","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":1,"removed_from_other_channels":0} [09:43:50] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [09:43:50] [USER] ✅ User registered successfully [09:43:50] [PUSH] User registration after token update: success [09:43:50] [PRELOAD] ⚡ Starting message pre-load during authentication (since_id=19189)... [09:43:50] [CLIENT_SIG] WebSocket opened [09:43:50] [CLIENT_SIG] HELLO sent as client for session ILUIWU2 [09:43:50] [CLIENT_SIG] Connected! clientId=VqZwU4Bc062CA1tv [09:43:50] [PRELOAD] No messages or parse error [09:43:50] [CLIENT_SIG] Received 2 clients for session 'ILUIWU2' (my session: 'ILUIWU2') [09:43:50] [CLIENT_SIG] - Lolo (3F6A8511-914A-4BE0-9540-3582F1C2DD43) [09:43:50] [CLIENT_SIG] - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:43:52] [PIN_AUTH] Correct PIN [09:43:52] [SECURITY] Restored real session: ILUIWU2 [09:43:52] [SECURITY] Restored real session: ILUIWU2 [09:43:52] [SECURITY] Saved real session: ILUIWU2 [09:43:52] [SCENE] Launched directly to chat view with sessionId: ILUIWU2 [09:43:52] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone) [09:43:52] Documents Directory: /var/mobile/Containers/Data/Application/3AC01166-C687-4982-BE84-6DCD32D50197/Documents [09:43:52] [THEME] Applying current theme [09:43:52] [CHAT] Applied day theme (mode: day) [09:43:52] [SECURITY] Saved real session: ILUIWU2 [09:43:52] [CLIENT_SIG] Setting up client signaling for session: ILUIWU2 [09:43:52] [CLIENT_SIG] Already connected/connecting to session ILUIWU2 [09:43:52] [NETWORK] Network monitor started [09:43:52] [NETWORK] Status changed: connected [09:43:52] [UPLOAD_QUEUE] Found 0 pending uploads to resume [09:43:52] Did transition [09:43:52] [MODE] 🔍 updateModeUI called - currentTabIndex=0, sessionId=ILUIWU2 [09:43:52] [VIEWER] Screen lock enabled - normal idle behavior [09:43:52] [QUERY] 🔍 Creating query connection for iOS slave: iosILUIWU2 [09:43:52] [VCC] ========== VideoConnectionClass INIT ========== [09:43:52] [VCC] Session: iosILUIWU2, ViewIdx: 0, AgentId: nil [09:43:52] [DATA AUDIO] ========== setupWebRTC() START ========== [09:43:52] [DATA AUDIO] Using data channel for audio - bypassing WebRTC audio device [09:43:52] [DATA AUDIO] Creating encoder/decoder factories... [09:43:52] [CODEC] Viewer - Available video codecs: H264, H264, VP8, VP9, AV1 [09:43:52] [CODEC] Viewer selected encoder: AV1 (best quality) [09:43:52] [DATA AUDIO] Creating RTCPeerConnectionFactory... [09:43:52] [DATA AUDIO] ✅ Factory created [09:43:52] [DATA AUDIO] RTCAudioSession locked [09:43:52] [DATA AUDIO] Set useManualAudio=true, isAudioEnabled=false [09:43:52] [DATA AUDIO] RTCAudioSession unlocked [09:43:52] [DATA AUDIO] Skipping AVAudioSession config - handled by DataChannelAudioPlayer [09:43:52] [VCC] Initial ICE servers: ["stun:stun.l.google.com:19302", "turn:crivello.dyndns.org:3478?transport=udp", "turn:crivello.dyndns.org:3478?transport=tcp", "turns:crivello.dyndns.org:5349?transport=tcp"] [09:43:52] [WS] Creating new WebSocket - isQueryOnly=false, connectionStr=iosILUIWU2 [09:43:52] [WS] Opening session at ws://crivello.dyndns.org:8081/ [09:43:52] [QUERY] ✅ tempQueryConnection created for iosILUIWU2 [09:43:52] [VIEWER_INIT] Already have 50 messages - just filtering for tab [09:43:52] [EVENT_POLL] Event polling disabled - using WebSocket events instead [09:43:52] [ORIENTATION] Updated pagingScrollView height to 247.5 for width 440.0 [09:43:52] Did transition [09:43:52] [TABLEVIEW] cellForRowAt index 0 out of bounds (count=0) [09:43:52] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [09:43:52] [CHUNK] Merged 978 reactions synchronously [09:43:52] [RELOAD_TAB] ⏳ Already pending, waiting for debounce [09:43:52] [GALLERY_DB] Loading ALL media messages for session: ILUIWU2 [09:43:52] [MIGRATION] Found 3 messages needing sender_name backfill [09:43:52] [GALLERY_DB] Raw datesent for msg 4147: '2025-12-07 13:57:55' [09:43:52] [GALLERY_DB] Raw datesent for msg 3275: '2025-12-04 12:57:27' [09:43:52] [GALLERY_DB] Raw datesent for msg 3258: '2025-12-04 11:07:25' [09:43:52] [GALLERY_DB] ✅ Loaded 8 media messages [09:43:52] [GALLERY] Filtered 8 -> 4 (only with local thumbnails) [09:43:52] [GALLERY] First 5 after sort (newest first): [09:43:52] [GALLERY] 0: id=4147, date=2025-12-07 13:57:55, file=8f9a7578f1011fa7.png [09:43:52] [GALLERY] 1: id=3275, date=2025-12-04 12:57:27, file=979ed1b3bb8031c5.heic [09:43:52] [GALLERY] 2: id=3258, date=2025-12-04 11:07:25, file=46824a6556317ee6.mov [09:43:52] [GALLERY] 3: id=2616, date=2025-11-29 16:12:09, file=92668b65c604182e.jpeg [09:43:52] [SCROLL_BTN] Showing button - 32pt from bottom > half 22pt [09:43:52] [USER] ✅ User registered successfully [09:43:52] [USER] User registration successful [09:43:52] [SERVER] Starting reconnect polling (5s interval) [09:43:52] [ICONS] Screen width: 440.0, Tab spacing: 75.5 [09:43:52] [ICONS] Offset applied: -14.6 [09:43:52] [ICONS] New left margin: 11.2, New right margin: 11.3 [09:43:52] [MIGRATION] Failed to parse user names response [09:43:52] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=50 [09:43:52] [PUSH_TRACE] 📡 INCREMENTAL: maxLocalId (from DB)=19189, maxMemoryId=19189 [09:43:52] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19189 [09:43:52] [INCREMENTAL_SYNC] ✅ No new messages [09:43:52] [PURGE] ⚠️ Media cache purge DISABLED for debugging [09:43:52] [UNSENT_RETRY] Checking for unsent messages... [09:43:52] [UPLOAD_RECOVERY] ========== CHECKING FOR MISSING UPLOADS ========== [09:43:52] [UPLOAD_RECOVERY] User ID: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF [09:43:52] [UPLOAD_RECOVERY] Session: ILUIWU2 [09:43:52] [UPLOAD_RECOVERY] ✅ No stuck uploads found [09:43:52] [UPLOAD_RECOVERY] Checking recent media messages on server... [09:43:52] [UPLOAD_RECOVERY] No recent media messages to check on server [09:43:52] [PENDING_UPLOAD] Total pending upload messages: 0 [09:43:52] [UNSENT_RETRY] No unsent messages found [09:43:52] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[1781, 1817, 1818, 1819, 1820] [09:43:52] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 50 messages [09:43:52] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [1781, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908] [09:43:52] [EMOJI] ✅ Loaded 451 emoji-to-GIF mappings [09:43:52] [ICONS] Chat center: (31.2, 87.0) [09:43:52] [ICONS] Gallery center: (106.7, 87.0), deltaX: 75.5 [09:43:52] [ICONS] Camera center: (182.2, 87.0), deltaX: 75.5 [09:43:52] [ICONS] Settings center: (257.7, 87.0), deltaX: 75.5 [09:43:52] [ICONS] Lock centerX: 333.2, deltaX from Settings: 75.5 [09:43:52] [ICONS] Bell centerX: 408.7, deltaX from Lock: 75.5 [09:43:52] [ICONS] LEFT MARGIN (screen left to Chat left): 11.2 [09:43:52] [ICONS] RIGHT MARGIN (Bell right to screen right): 11.3 [09:43:52] [ICONS] Screen width: 440.0 [09:43:52] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU2 [09:43:52] Trying API base: https://crivello.dyndns.org:443/WebRTC/public/ [09:43:52] Trying API base: https://crivello.dyndns.org:443/WebRTC/public/ [09:43:52] Token POST → https://crivello.dyndns.org:443/WebRTC/public/new_session.php?sid=iosILUIWU2 [09:43:53] [CHAT] Bubble color update notification received [09:43:53] new_session POST ok: token len=159 [09:43:53] HELLO → sent (fetched token, role=query) [09:43:53] [SIG] hello_ok received for query connection - ready to query agents [09:43:53] [SIG] get_agents request sent for sessionId=ILUIWU2 [09:43:53] [SIG] get_agents request sent for sessionId=iosILUIWU2 [09:43:53] [SERVER] Stopped reconnect polling [09:43:53] [SIG] agents_list received: [] [09:43:53] [SIG] agents_list received: [] [09:43:53] [COMBINED_FETCH] Loaded 10000 read receipts, 5 messages with reactions [09:43:53] [READBY_ENRICH] Enriched 50 messages with readBy data [09:43:53] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[1781, 1817, 1818, 1819, 1820] [09:43:53] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 50 messages [09:43:53] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [1781, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908] [09:43:56] [MUTE] Status sent to server: muted=0, response code=200 [09:43:56] [MUTE] Status sent to server: muted=0, response code=200 [09:43:58] [MUTE] Status sent to server: muted=1, response code=200 [09:43:58] [MUTE] Status sent to server: muted=1, response code=200 [09:44:01] [LIFECYCLE] App resigning active - cleared crash flag [09:44:02] [SECURITY] sceneDidEnterBackground - isAuthenticated=true [09:44:02] [SECURITY] Saved background timestamp [09:44:02] [LIFECYCLE] App entering background - cleared crash flag [09:44:02] [CLIENT_SIG] Disconnecting [09:44:02] [LIFECYCLE] App entering background - disconnecting connections and stopping audio [09:44:02] [PUSH_TRACE] 💤 BACKGROUND: memory has 50 messages, first 10 IDs=[1781, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908] [09:44:02] [WS] stopSignalingAndPeer called - isQueryOnly=true, connectionStr=iosILUIWU2, wsState=0 [09:44:02] [WS] Canceling WebSocket for query connection to iosILUIWU2 [09:44:02] In cleanupPeer [09:44:02] In cleanupPeer [09:44:02] [LIFECYCLE] WebRTC audio disabled [09:44:02] [LIFECYCLE] AVAudioSession deactivated [09:44:02] [LIFECYCLE] All connections stopped [09:44:02] [CLIENT_SIG] WebSocket closed with code 1001 [09:44:02] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1) [09:44:02] [SERVER] Stopped reconnect polling [09:44:02] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=http://crivello.dyndns.org:8081/, NSErrorFailingURLKey=http://crivello.dyndns.org:8081/} [09:44:02] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2) [09:44:02] [WS] WebSocket task completed with error - isQueryOnly=true: cancelled [09:44:02] [WS] Query connection error - cleaning up all agent connections and views [09:44:02] Will request stop of video 0 [09:44:02] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected [09:44:02] [WS] Query connection failed - cleaning up all agent connections and views [09:44:02] Will request stop of video 0 [09:44:02] [CLEANUP] ======================================== [09:44:02] [CLEANUP] Cleaning up all agent connections and views [09:44:02] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [09:44:02] [CLEANUP] Stopped and removed 0 video connections [09:44:02] [CLEANUP] Removed 0 video views [09:44:02] [CLEANUP] Removed 0 feed scroll views [09:44:02] [CLEANUP] Removed 0 status labels [09:44:02] [CLEANUP] Reset agent query state [09:44:02] [CLEANUP] Updated page indicator [09:44:02] [CLEANUP] Rebuilt video layout [09:44:02] [CLEANUP] ✅ All agent connections and views cleaned up [09:44:02] [CLEANUP] ======================================== [09:44:02] [SERVER] Skipping reconnect polling - app is in background [09:44:02] [WS] URLSession invalidated successfully [09:44:02] [PIP] Removing 0 tracks from PiP for connection 0 [09:44:02] [PIP] ✅ All tracks removed for connection 0 [09:44:02] [CLEANUP] ======================================== [09:44:02] [CLEANUP] Cleaning up all agent connections and views [09:44:02] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [09:44:02] [CLEANUP] Stopped and removed 0 video connections [09:44:02] [CLEANUP] Removed 0 video views [09:44:02] [CLEANUP] Removed 0 feed scroll views [09:44:02] [CLEANUP] Removed 0 status labels [09:44:02] [CLEANUP] Reset agent query state [09:44:02] [CLEANUP] Updated page indicator [09:44:02] [CLEANUP] Rebuilt video layout [09:44:02] [CLEANUP] ✅ All agent connections and views cleaned up [09:44:02] [CLEANUP] ======================================== [09:44:02] [SERVER] Skipping reconnect polling - app is in background [09:44:02] [PIP] Removing 0 tracks from PiP for connection 0 [09:44:02] [PIP] ✅ All tracks removed for connection 0 [09:44:04] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU2 [09:44:04] [WS] Opening session at ws://crivello.dyndns.org:8081/ [09:44:04] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU2 [09:44:04] HELLO → sent (cached token, role=query) [09:44:04] [SIG] hello_ok received for query connection - ready to query agents [09:44:04] [SIG] get_agents request sent for sessionId=ILUIWU2 [09:44:04] [SIG] get_agents request sent for sessionId=iosILUIWU2 [09:44:04] [SERVER] Stopped reconnect polling [09:44:04] [SIG] agents_list received: [] [09:44:04] [SIG] agents_list received: [] [09:44:06] [CLIENT_SIG] Connecting to session ILUIWU2 as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:44:06] [CLIENT_SIG] WebSocket opened [09:44:06] [CLIENT_SIG] HELLO sent as client for session ILUIWU2 [09:44:06] [CLIENT_SIG] Connected! clientId=fcqHkf4WPI5457H6 [09:44:06] [CLIENT_SIG] Received 2 clients for session 'ILUIWU2' (my session: 'ILUIWU2') [09:44:06] [CLIENT_SIG] - Lolo (3F6A8511-914A-4BE0-9540-3582F1C2DD43) [09:44:06] [CLIENT_SIG] - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:44:06] [CLIENT_SIG] Typing start from: Lolo (3F6A8511-914A-4BE0-9540-3582F1C2DD43) [09:44:12] [CLIENT_SIG] Typing stop from: Lolo (3F6A8511-914A-4BE0-9540-3582F1C2DD43) [09:44:14] [PUSH] Silent push received [09:44:14] [PUSH_TRACE] 🔔 SILENT PUSH at 2026-01-26 08:44:14 +0000, appState=2, message_id=19190 [09:44:14] [PUSH_TRACE] 🔔 SILENT: cache BEFORE: count=0, IDs=[] [09:44:14] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData START at 2026-01-26 08:44:14 +0000 [09:44:14] [PUSH_TRACE] ⬇️ Processing embedded message_id=19190 [09:44:14] [PUSH_EMBED] 📩 Received embedded message: id=19190, type=0, sender=Lolo [09:44:14] [PUSH_TRACE] ⬇️ Message details: text="Msg3...", datesent=2026-01-26 08:44:12 [09:44:14] [PUSH_TRACE] ⬇️ Session check: msgSession=ILUIWU2, currentSession=ILUIWU2 [09:44:14] [PUSH_TRACE] ⬇️ About to enter pushMessageQueue.sync for message 19190 [09:44:14] [PUSH_TRACE] ⬇️ INSIDE pushMessageQueue.sync for message 19190 [09:44:14] [PUSH_EMBED] ✅ Saved message 19190 to local DB (sync) [09:44:14] [PUSH_TRACE] ⬇️ EXITING pushMessageQueue.sync for message 19190 [09:44:14] [PUSH_TRACE] 📦 About to update PreloadedDataCache for message 19190 [09:44:14] [PUSH_TRACE] 📦 INSIDE cache update queue for message 19190 [09:44:14] [PUSH_TRACE] 📦 Cache state: valid=false, count=0, IDs=[] [09:44:14] [PUSH_EMBED] Created new cache with embedded message 19190 [09:44:14] [PUSH_TRACE] 📦 ✅ Created new cache with message 19190 [09:44:14] [PUSH_TRACE] 📦 EXITING cache update queue for message 19190 [09:44:14] [PUSH_EMBED] Fetching evolution data for message 19190 in background [09:44:14] [PUSH_EMBED] ✅ Fully processed message 19190 [09:44:14] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData END - SUCCESS for message 19190 [09:44:14] [PUSH_TRACE] 🔔 SILENT: cache AFTER: count=1, IDs=[19190], handled=true [09:44:14] [PUSH] Embedded message handled instantly from silent push [09:44:14] [PUSH_TRACE] 🔔 SILENT: About to post pollEventsNow notification [09:44:14] [PUSH_TRACE] 🔔 SILENT: Completed with .newData for message_id=19190 [09:44:14] [PUSH_UI] 🔔 handlePushMessageReceived CALLED [09:44:14] [PUSH_TRACE] 👁️ handlePushMessageReceived START [09:44:14] [PUSH_TRACE] 👁️ Received message id=19190, text="Msg3..." [09:44:14] [PUSH_UI_BLACKOUT] blackoutView=false, senderId=3F6A8511-914A-4BE0-9540-3582F1C2DD43, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, type=0 [09:44:14] [PUSH_TRACE] 👁️ BEFORE insert: 50 messages, first 5 IDs: [1781, 1817, 1818, 1819, 1820] [09:44:14] [PUSH_TRACE] 👁️ Inserted message 19190 at index 0 [09:44:14] [PUSH_UI] Inserted message 19190 into UI (now 51 messages) [09:44:14] [PUSH_TRACE] 👁️ AFTER insert: 51 messages, first 5 IDs: [19190, 1781, 1817, 1818, 1819] [09:44:14] [PUSH_TRACE] 👁️ handlePushMessageReceived END - success [09:44:14] [WS] WebSocket task completed with error - isQueryOnly=true: The request timed out. [09:44:14] [WS] Query connection error - cleaning up all agent connections and views [09:44:14] [PUSH_TRACE] 📬 handlePollEventsNotification START: memory has 51 msgs, IDs=[19190, 1781, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1891] [09:44:14] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("session_id"): ILUIWU2, AnyHashable("message_data"): { datesent = "2026-01-26 08:44:12"; "file_name" = ""; message = Msg3; "message_id" = 19190; "message_type" = 0; "prev_session_message_id" = 19189; "sender_id" = "3F6A8511-914A-4BE0-9540-3582F1C2DD43"; "sender_name" = Lolo; "session_id" = ILUIWU2; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19190, AnyHashable("aps"): { "content-available" = 1; }] [09:44:14] [PUSH_EMBED_VC] Message 19190 already in memory - skipping [09:44:14] [PUSH] ⚡ Embedded message handled directly in ViewController [09:44:14] [PUSH] Parsed message_id: 19190 [09:44:14] [PUSH] Parsed operation_type: 0 [09:44:14] [PUSH] Taking direct action: opType=0, messageId=19190 [09:44:14] [PUSH] TakeActionFromPush called: OperationType=0, MessageIds=19190 [09:44:14] [PUSH] ⚡ Message 19190 already in memory - skipping duplicate notification entirely [09:44:14] [CLEANUP] ======================================== [09:44:14] [CLEANUP] Cleaning up all agent connections and views [09:44:14] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [09:44:14] [CLEANUP] Stopped and removed 0 video connections [09:44:14] [CLEANUP] Removed 0 video views [09:44:14] [CLEANUP] Removed 0 feed scroll views [09:44:14] [CLEANUP] Removed 0 status labels [09:44:14] [CLEANUP] Reset agent query state [09:44:14] [CLEANUP] Updated page indicator [09:44:14] [CLEANUP] Rebuilt video layout [09:44:14] [CLEANUP] ✅ All agent connections and views cleaned up [09:44:14] [CLEANUP] ======================================== [09:44:14] [SERVER] Skipping reconnect polling - app is in background [09:44:14] [PUSH_EMBED] Got evolution data for message 19190, saving to local DB [09:44:14] [PUSH_EMBED] Saved evolution data for message 19190 [09:44:14] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[19190, 1781, 1817, 1818, 1819] [09:44:14] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 51 messages [09:44:14] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [19190, 1781, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1891] [09:44:14] [EVOLUTION_FILTER] 📝 Updated lastSeenMessageId after marking as read: 19189 → 19190 [09:44:19] [CLIENT_SIG] Event received: type=0 messageId=19190 [09:44:19] [WS_EVENT] Received event: type=0, messageId=19190 [09:44:19] [WS_EVENT] 📨 New message notification (msgId=19190) - triggering incremental refresh, currentMsgCount=51 [09:44:19] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=51 [09:44:19] [PUSH_TRACE] 📡 INCREMENTAL: maxLocalId (from DB)=19190, maxMemoryId=19190 [09:44:19] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19190 [09:44:19] [INCREMENTAL_SYNC] ✅ No new messages [09:44:19] [WS_EVENT] ✅ Incremental refresh complete, newMsgCount=51 [09:44:20] [CLIENT_SIG] Typing start from: Lolo (3F6A8511-914A-4BE0-9540-3582F1C2DD43) [09:44:21] [PUSH] Silent push received [09:44:21] [PUSH_TRACE] 🔔 SILENT PUSH at 2026-01-26 08:44:21 +0000, appState=2, message_id=nil [09:44:21] [PUSH_TRACE] 🔔 SILENT: cache BEFORE: count=1, IDs=[19190] [09:44:21] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData START at 2026-01-26 08:44:21 +0000 [09:44:21] [PUSH_EMBED] No embedded message_data in notification [09:44:21] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData END - no message_data [09:44:21] [PUSH_TRACE] 🔔 SILENT: cache AFTER: count=1, IDs=[19190], handled=false [09:44:21] [PUSH] No embedded data, pre-loading messages from server [09:44:21] [PUSH_PRELOAD] Fetching messages for instant display cache [09:44:21] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [09:44:21] [PUSH_TRACE] 🔀 mergeMessages called: newMessages.count=50, sessionId=ILUIWU2 [09:44:21] [PUSH_TRACE] 🔀 mergeMessages: newMessages IDs=[19190, 19189, 19188, 17161, 17159, 17158, 17157, 14693, 14692, 14691] [09:44:21] [PUSH_TRACE] 🔀 mergeMessages: existingMessages.count=1, IDs=[19190] [09:44:21] [PUSH_TRACE] 🔀 mergeMessages: preservedMessages.count=0, IDs=[] [09:44:21] [PUSH_TRACE] 🔀 mergeMessages: merged.count=50, first 10 IDs=[19190, 19189, 19188, 17161, 17159, 17158, 17157, 14693, 14692, 14691] [09:44:21] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push) [09:44:21] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [09:44:21] [PUSH_TRACE] 📬 handlePollEventsNotification START: memory has 51 msgs, IDs=[19190, 1781, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1891] [09:44:21] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("session_id"): ILUIWU2, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19190, AnyHashable("aps"): { "content-available" = 1; }] [09:44:21] [PUSH] Parsed message_id: 19190 [09:44:21] [PUSH] Parsed operation_type: 3 [09:44:21] [PUSH] Taking direct action: opType=3, messageId=19190 [09:44:21] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19190 [09:44:24] [CLIENT_SIG] Typing stop from: Lolo (3F6A8511-914A-4BE0-9540-3582F1C2DD43) [09:44:26] [PUSH] Silent push received [09:44:26] [PUSH_TRACE] 🔔 SILENT PUSH at 2026-01-26 08:44:26 +0000, appState=2, message_id=19191 [09:44:26] [PUSH_TRACE] 🔔 SILENT: cache BEFORE: count=50, IDs=[19190, 19189, 19188, 17161, 17159, 17158, 17157, 14693, 14692, 14691] [09:44:26] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData START at 2026-01-26 08:44:26 +0000 [09:44:26] [PUSH_TRACE] ⬇️ Processing embedded message_id=19191 [09:44:26] [PUSH_EMBED] 📩 Received embedded message: id=19191, type=0, sender=Lolo [09:44:26] [PUSH_TRACE] ⬇️ Message details: text="Msg4...", datesent=2026-01-26 08:44:24 [09:44:26] [PUSH_TRACE] ⬇️ Session check: msgSession=ILUIWU2, currentSession=ILUIWU2 [09:44:26] [PUSH_TRACE] ⬇️ About to enter pushMessageQueue.sync for message 19191 [09:44:26] [PUSH_TRACE] ⬇️ INSIDE pushMessageQueue.sync for message 19191 [09:44:26] [PUSH_EMBED] ✅ Saved message 19191 to local DB (sync) [09:44:26] [PUSH_TRACE] ⬇️ EXITING pushMessageQueue.sync for message 19191 [09:44:26] [PUSH_TRACE] 📦 About to update PreloadedDataCache for message 19191 [09:44:26] [PUSH_TRACE] 📦 INSIDE cache update queue for message 19191 [09:44:26] [PUSH_TRACE] 📦 Cache state: valid=true, count=50, IDs=[19190, 19189, 19188, 17161, 17159, 17158, 17157, 14693, 14692, 14691] [09:44:26] [PUSH_EMBED] Inserted message 19191 into existing cache (now 51 messages) [09:44:26] [PUSH_TRACE] 📦 ✅ Inserted message 19191, cache now has IDs: [19191, 19190, 19189, 19188, 17161, 17159, 17158, 17157, 14693, 14692] [09:44:26] [PUSH_TRACE] 📦 EXITING cache update queue for message 19191 [09:44:26] [PUSH_EMBED] Fetching evolution data for message 19191 in background [09:44:26] [PUSH_EMBED] ✅ Fully processed message 19191 [09:44:26] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData END - SUCCESS for message 19191 [09:44:26] [PUSH_TRACE] 🔔 SILENT: cache AFTER: count=51, IDs=[19191, 19190, 19189, 19188, 17161, 17159, 17158, 17157, 14693, 14692], handled=true [09:44:26] [PUSH] Embedded message handled instantly from silent push [09:44:26] [PUSH_TRACE] 🔔 SILENT: About to post pollEventsNow notification [09:44:26] [PUSH_TRACE] 🔔 SILENT: Completed with .newData for message_id=19191 [09:44:26] [PUSH_UI] 🔔 handlePushMessageReceived CALLED [09:44:26] [PUSH_TRACE] 👁️ handlePushMessageReceived START [09:44:26] [PUSH_TRACE] 👁️ Received message id=19191, text="Msg4..." [09:44:26] [PUSH_UI_BLACKOUT] blackoutView=false, senderId=3F6A8511-914A-4BE0-9540-3582F1C2DD43, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, type=0 [09:44:26] [PUSH_TRACE] 👁️ BEFORE insert: 51 messages, first 5 IDs: [19190, 1781, 1817, 1818, 1819] [09:44:26] [PUSH_TRACE] 👁️ Inserted message 19191 at index 0 [09:44:26] [PUSH_UI] Inserted message 19191 into UI (now 52 messages) [09:44:26] [PUSH_TRACE] 👁️ AFTER insert: 52 messages, first 5 IDs: [19191, 19190, 1781, 1817, 1818] [09:44:26] [PUSH_TRACE] 👁️ handlePushMessageReceived END - success [09:44:26] [PUSH_TRACE] 📬 handlePollEventsNotification START: memory has 52 msgs, IDs=[19191, 19190, 1781, 1817, 1818, 1819, 1820, 1821, 1822, 1823] [09:44:26] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("session_id"): ILUIWU2, AnyHashable("message_data"): { datesent = "2026-01-26 08:44:24"; "file_name" = ""; message = Msg4; "message_id" = 19191; "message_type" = 0; "prev_session_message_id" = 19190; "sender_id" = "3F6A8511-914A-4BE0-9540-3582F1C2DD43"; "sender_name" = Lolo; "session_id" = ILUIWU2; timer = 0; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19191, AnyHashable("aps"): { "content-available" = 1; }] [09:44:26] [PUSH_EMBED_VC] Message 19191 already in memory - skipping [09:44:26] [PUSH] ⚡ Embedded message handled directly in ViewController [09:44:26] [PUSH] Parsed message_id: 19191 [09:44:26] [PUSH] Parsed operation_type: 0 [09:44:26] [PUSH] Taking direct action: opType=0, messageId=19191 [09:44:26] [PUSH] TakeActionFromPush called: OperationType=0, MessageIds=19191 [09:44:26] [PUSH] ⚡ Message 19191 already in memory - skipping duplicate notification entirely [09:44:26] [PUSH_EMBED] Got evolution data for message 19191, saving to local DB [09:44:26] [PUSH_EMBED] Saved evolution data for message 19191 [09:44:26] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[19191, 19190, 1781, 1817, 1818] [09:44:26] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 52 messages [09:44:26] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [19191, 19190, 1781, 1817, 1818, 1819, 1820, 1821, 1822, 1823] [09:44:28] [CLIENT_SIG] Event received: type=3 messageId=19190 [09:44:28] [WS_EVENT] Received event: type=3, messageId=19190 [09:44:28] [WS_EVENT] Read receipt for message 19190 by Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:44:33] [CLIENT_SIG] Event received: type=0 messageId=19191 [09:44:33] [WS_EVENT] Received event: type=0, messageId=19191 [09:44:33] [WS_EVENT] 📨 New message notification (msgId=19191) - triggering incremental refresh, currentMsgCount=52 [09:44:33] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=52 [09:44:33] [PUSH_TRACE] 📡 INCREMENTAL: maxLocalId (from DB)=19191, maxMemoryId=19191 [09:44:33] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19191 [09:44:33] [INCREMENTAL_SYNC] ✅ No new messages [09:44:33] [WS_EVENT] ✅ Incremental refresh complete, newMsgCount=52 [09:44:35] [SECURITY] Timeout check: elapsed=33.665066719055176s, timeout=300.0s [09:44:35] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU2 [09:44:35] [CLIENT_SIG] Already connected/connecting to session ILUIWU2 [09:44:35] [LIFECYCLE] App entering foreground - restoring connections [09:44:35] [PUSH_TRACE] 🔄 FOREGROUND: memory has 52 msgs, IDs=[19191, 19190, 1781, 1817, 1818, 1819, 1820, 1821, 1822, 1823] [09:44:35] [PUSH_TRACE] 🔄 FOREGROUND: cache has 51 msgs, valid=true, IDs=[19191, 19190, 19189, 19188, 17161, 17159, 17158, 17157, 14693, 14692] [09:44:35] [UPLOAD_RETRY] No pending uploads to retry [09:44:35] [LIFECYCLE] Merged 978 reactions from local DB [09:44:35] [LIFECYCLE] WebRTC audio re-enabled [09:44:35] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone) [09:44:35] [CLIENT_SIG] Setting up client signaling for session: ILUIWU2 [09:44:35] [CLIENT_SIG] Already connected/connecting to session ILUIWU2 [09:44:35] [VIEWER] Reconnecting after background - querying agents [09:44:35] [UNSENT_RETRY] Checking for unsent messages... [09:44:35] [PENDING_UPLOAD] Total pending upload messages: 0 [09:44:35] [UNSENT_RETRY] No unsent messages found [09:44:36] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[19191, 19190, 1781, 1817, 1818] [09:44:36] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 52 messages [09:44:36] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [19191, 19190, 1781, 1817, 1818, 1819, 1820, 1821, 1822, 1823] [09:44:36] [SECURITY] sceneDidBecomeActive - isAuthenticated=true, didEnterBackground=true [09:44:36] [SECURITY] Within timeout - cleared background flag [09:44:36] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow [09:44:36] [PUSH_TRACE] 📬 handlePollEventsNotification START: memory has 52 msgs, IDs=[19191, 19190, 1781, 1817, 1818, 1819, 1820, 1821, 1822, 1823] [09:44:36] [PUSH] handlePollEventsNotification userInfo: [:] [09:44:36] [PUSH] No message_id in userInfo [09:44:36] [PUSH] No operation_type in userInfo [09:44:36] [FAST_REFRESH] Evolution disabled - performing incremental sync [09:44:36] [PUSH_TRACE] 📬 POLL: cache state: valid=true, count=51, IDs=[19191, 19190, 19189, 19188, 17161, 17159, 17158, 17157, 14693, 14692] [09:44:36] [PUSH_TRACE] 📬 POLL: memory state: count=52, first 10 IDs=[19191, 19190, 1781, 1817, 1818, 1819, 1820, 1821, 1822, 1823] [09:44:36] [FAST_REFRESH] Already have 52 messages - skipping local DB load [09:44:36] [PUSH_TRACE] ⚠️ POLL: NOT loading from DB because allMessagesWithReadBy has 52 messages [09:44:36] [FAST_REFRESH] About to call reloadMessagesForCurrentTab(), isMainThread=true, viewLoaded=true [09:44:36] [FAST_REFRESH] reloadMessagesForCurrentTab() called successfully [09:44:36] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=52 [09:44:36] [PUSH_TRACE] 📡 INCREMENTAL: maxLocalId (from DB)=19191, maxMemoryId=19191 [09:44:36] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19191 [09:44:36] [INCREMENTAL_SYNC] ✅ No new messages [09:44:36] [FAST_REFRESH] Incremental sync complete - 52 messages [09:44:36] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[19191, 19190, 1781, 1817, 1818] [09:44:36] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 52 messages [09:44:36] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [19191, 19190, 1781, 1817, 1818, 1819, 1820, 1821, 1822, 1823] [09:44:36] [COMBINED_FETCH] Loaded 10000 read receipts, 5 messages with reactions [09:44:36] [FOREGROUND] Enriched 0 messages with readBy data from server [09:44:36] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[19191, 19190, 1781, 1817, 1818] [09:44:36] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 52 messages [09:44:36] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [19191, 19190, 1781, 1817, 1818, 1819, 1820, 1821, 1822, 1823] [09:44:36] [EVOLUTION_FILTER] 📝 Updated lastSeenMessageId after marking as read: 19190 → 19191 [09:44:37] [COMBINED_FETCH] Loaded 10000 read receipts, 5 messages with reactions [09:44:37] [FAST_REFRESH] Enriched 52 messages with readBy data [09:44:37] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[19191, 19190, 1781, 1817, 1818] [09:44:37] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 52 messages [09:44:37] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [19191, 19190, 1781, 1817, 1818, 1819, 1820, 1821, 1822, 1823] [09:44:38] [PUSH] Silent push received [09:44:38] [PUSH_TRACE] 🔔 SILENT PUSH at 2026-01-26 08:44:38 +0000, appState=0, message_id=nil [09:44:38] [PUSH_TRACE] 🔔 SILENT: cache BEFORE: count=51, IDs=[19191, 19190, 19189, 19188, 17161, 17159, 17158, 17157, 14693, 14692] [09:44:38] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData START at 2026-01-26 08:44:38 +0000 [09:44:38] [PUSH_EMBED] No embedded message_data in notification [09:44:38] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData END - no message_data [09:44:38] [PUSH_TRACE] 🔔 SILENT: cache AFTER: count=51, IDs=[19191, 19190, 19189, 19188, 17161, 17159, 17158, 17157, 14693, 14692], handled=false [09:44:38] [PUSH] No embedded data, pre-loading messages from server [09:44:38] [PUSH_PRELOAD] Fetching messages for instant display cache [09:44:39] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [09:44:39] [PUSH_TRACE] 🔀 mergeMessages called: newMessages.count=50, sessionId=ILUIWU2 [09:44:39] [PUSH_TRACE] 🔀 mergeMessages: newMessages IDs=[19191, 19190, 19189, 19188, 17161, 17159, 17158, 17157, 14693, 14692] [09:44:39] [PUSH_TRACE] 🔀 mergeMessages: existingMessages.count=51, IDs=[19191, 19190, 19189, 19188, 17161, 17159, 17158, 17157, 14693, 14692] [09:44:39] [PRELOAD_CACHE] Preserving 1 push-inserted messages: [1817] [09:44:39] [PUSH_TRACE] 🔀 mergeMessages: preservedMessages.count=1, IDs=[1817] [09:44:39] [PUSH_TRACE] 🔀 mergeMessages: merged.count=51, first 10 IDs=[19191, 19190, 19189, 19188, 17161, 17159, 17158, 17157, 14693, 14692] [09:44:39] [PUSH_PRELOAD] ⚡ Pre-cached 51 messages for instant display (preserved 1 from push) [09:44:39] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [09:44:39] [PUSH_TRACE] 📬 handlePollEventsNotification START: memory has 52 msgs, IDs=[19191, 19190, 1781, 1817, 1818, 1819, 1820, 1821, 1822, 1823] [09:44:39] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("session_id"): ILUIWU2, AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("message_id"): 19191, AnyHashable("operation_type"): 3] [09:44:39] [PUSH] Parsed message_id: 19191 [09:44:39] [PUSH] Parsed operation_type: 3 [09:44:39] [PUSH] Taking direct action: opType=3, messageId=19191 [09:44:39] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19191 [09:44:47] [CLIENT_SIG] Event received: type=3 messageId=19191 [09:44:47] [WS_EVENT] Received event: type=3, messageId=19191 [09:44:47] [WS_EVENT] Read receipt for message 19191 by Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:44:58] [MENU] dismissAnyExistingMenu called [09:44:58] [MENU] dismissAnyExistingMenu completed [09:45:23] [CRASH] No crash detected [09:45:23] [FONT] Roboto fonts loaded successfully: Roboto-Regular [09:45:23] [FONT] ChatFont.regular(18) returns: Roboto-Regular, family: Roboto [09:45:23] [GIPHY] SDK not available - using REST API fallback [09:45:23] [BACKGROUND] Background fetch enabled [09:45:23] [CLEANUP] No old timer messages to delete [09:45:23] [SECURITY] Initial launch - within timeout (81.12095403671265s < 300.0s) [09:45:23] [AUTH] Starting PIN authentication [09:45:23] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU2 [09:45:23] [CLIENT_SIG] Connecting to session ILUIWU2 as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:45:23] [PUSH] APNs token: 6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c [09:45:23] [SECURITY] sceneDidBecomeActive - isAuthenticated=false, didEnterBackground=false [09:45:23] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow [09:45:23] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU2","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":1,"removed_from_other_channels":0} [09:45:23] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [09:45:23] [USER] ✅ User registered successfully [09:45:23] [PUSH] User registration after token update: success [09:45:23] [CLIENT_SIG] WebSocket opened [09:45:23] [CLIENT_SIG] HELLO sent as client for session ILUIWU2 [09:45:23] [CLIENT_SIG] Connected! clientId=THgFf0RJo34_KKrh [09:45:23] [PRELOAD] ⚡ Starting message pre-load during authentication (since_id=19191)... [09:45:23] [CLIENT_SIG] Received 2 clients for session 'ILUIWU2' (my session: 'ILUIWU2') [09:45:23] [CLIENT_SIG] - Lolo (3F6A8511-914A-4BE0-9540-3582F1C2DD43) [09:45:23] [CLIENT_SIG] - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:45:23] [PRELOAD] No messages or parse error [09:45:26] [PIN_AUTH] Correct PIN [09:45:26] [SECURITY] Restored real session: ILUIWU2 [09:45:26] [SECURITY] Restored real session: ILUIWU2 [09:45:26] [SECURITY] Saved real session: ILUIWU2 [09:45:26] [SCENE] Launched directly to chat view with sessionId: ILUIWU2 [09:45:26] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone) [09:45:26] Documents Directory: /var/mobile/Containers/Data/Application/A47A5FFA-E0A7-4C62-BEA2-22D916EA9B09/Documents [09:45:26] [UPLOAD_QUEUE] Found 0 pending uploads to resume [09:45:26] [THEME] Applying current theme [09:45:26] [CHAT] Applied day theme (mode: day) [09:45:26] [SECURITY] Saved real session: ILUIWU2 [09:45:26] [CLIENT_SIG] Setting up client signaling for session: ILUIWU2 [09:45:26] [CLIENT_SIG] Already connected/connecting to session ILUIWU2 [09:45:26] [NETWORK] Network monitor started [09:45:26] [NETWORK] Status changed: connected [09:45:26] Did transition [09:45:26] [MODE] 🔍 updateModeUI called - currentTabIndex=0, sessionId=ILUIWU2 [09:45:26] [VIEWER] Screen lock enabled - normal idle behavior [09:45:26] [QUERY] 🔍 Creating query connection for iOS slave: iosILUIWU2 [09:45:26] [VCC] ========== VideoConnectionClass INIT ========== [09:45:26] [VCC] Session: iosILUIWU2, ViewIdx: 0, AgentId: nil [09:45:26] [DATA AUDIO] ========== setupWebRTC() START ========== [09:45:26] [DATA AUDIO] Using data channel for audio - bypassing WebRTC audio device [09:45:26] [DATA AUDIO] Creating encoder/decoder factories... [09:45:26] [CODEC] Viewer - Available video codecs: H264, H264, VP8, VP9, AV1 [09:45:26] [CODEC] Viewer selected encoder: AV1 (best quality) [09:45:26] [DATA AUDIO] Creating RTCPeerConnectionFactory... [09:45:26] [DATA AUDIO] ✅ Factory created [09:45:26] [DATA AUDIO] RTCAudioSession locked [09:45:26] [DATA AUDIO] Set useManualAudio=true, isAudioEnabled=false [09:45:26] [DATA AUDIO] RTCAudioSession unlocked [09:45:26] [DATA AUDIO] Skipping AVAudioSession config - handled by DataChannelAudioPlayer [09:45:26] [VCC] Initial ICE servers: ["stun:stun.l.google.com:19302", "turn:crivello.dyndns.org:3478?transport=udp", "turn:crivello.dyndns.org:3478?transport=tcp", "turns:crivello.dyndns.org:5349?transport=tcp"] [09:45:26] [WS] Creating new WebSocket - isQueryOnly=false, connectionStr=iosILUIWU2 [09:45:26] [WS] Opening session at ws://crivello.dyndns.org:8081/ [09:45:26] [QUERY] ✅ tempQueryConnection created for iosILUIWU2 [09:45:26] [VIEWER_INIT] Already have 50 messages - just filtering for tab [09:45:26] [EVENT_POLL] Event polling disabled - using WebSocket events instead [09:45:26] [ORIENTATION] Updated pagingScrollView height to 247.5 for width 440.0 [09:45:26] Did transition [09:45:26] [TABLEVIEW] cellForRowAt index 0 out of bounds (count=0) [09:45:26] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [09:45:26] [CHUNK] Merged 978 reactions synchronously [09:45:26] [RELOAD_TAB] ⏳ Already pending, waiting for debounce [09:45:26] [GALLERY_DB] Loading ALL media messages for session: ILUIWU2 [09:45:26] [MIGRATION] Found 3 messages needing sender_name backfill [09:45:26] [GALLERY_DB] Raw datesent for msg 4147: '2025-12-07 13:57:55' [09:45:26] [GALLERY_DB] Raw datesent for msg 3275: '2025-12-04 12:57:27' [09:45:26] [GALLERY_DB] Raw datesent for msg 3258: '2025-12-04 11:07:25' [09:45:26] [GALLERY_DB] ✅ Loaded 8 media messages [09:45:26] [GALLERY] Filtered 8 -> 4 (only with local thumbnails) [09:45:26] [GALLERY] First 5 after sort (newest first): [09:45:26] [GALLERY] 0: id=4147, date=2025-12-07 13:57:55, file=8f9a7578f1011fa7.png [09:45:26] [GALLERY] 1: id=3275, date=2025-12-04 12:57:27, file=979ed1b3bb8031c5.heic [09:45:26] [GALLERY] 2: id=3258, date=2025-12-04 11:07:25, file=46824a6556317ee6.mov [09:45:26] [GALLERY] 3: id=2616, date=2025-11-29 16:12:09, file=92668b65c604182e.jpeg [09:45:26] [SCROLL_BTN] Showing button - 32pt from bottom > half 22pt [09:45:26] [USER] ✅ User registered successfully [09:45:26] [USER] User registration successful [09:45:26] [SERVER] Starting reconnect polling (5s interval) [09:45:26] [ICONS] Screen width: 440.0, Tab spacing: 75.5 [09:45:26] [ICONS] Offset applied: -14.6 [09:45:26] [ICONS] New left margin: 11.2, New right margin: 11.3 [09:45:26] [MIGRATION] Failed to parse user names response [09:45:26] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=50 [09:45:26] [PUSH_TRACE] 📡 INCREMENTAL: maxLocalId (from DB)=19191, maxMemoryId=19191 [09:45:26] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19191 [09:45:26] [INCREMENTAL_SYNC] ✅ No new messages [09:45:26] [PURGE] ⚠️ Media cache purge DISABLED for debugging [09:45:26] [UNSENT_RETRY] Checking for unsent messages... [09:45:26] [UPLOAD_RECOVERY] ========== CHECKING FOR MISSING UPLOADS ========== [09:45:26] [UPLOAD_RECOVERY] User ID: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF [09:45:26] [UPLOAD_RECOVERY] Session: ILUIWU2 [09:45:26] [UPLOAD_RECOVERY] ✅ No stuck uploads found [09:45:26] [UPLOAD_RECOVERY] Checking recent media messages on server... [09:45:26] [UPLOAD_RECOVERY] No recent media messages to check on server [09:45:26] [PENDING_UPLOAD] Total pending upload messages: 0 [09:45:26] [UNSENT_RETRY] No unsent messages found [09:45:27] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[1818, 1819, 1820, 1821, 1822] [09:45:27] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 50 messages [09:45:27] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909, 1911] [09:45:27] [EMOJI] ✅ Loaded 451 emoji-to-GIF mappings [09:45:27] [ICONS] Chat center: (31.2, 87.0) [09:45:27] [ICONS] Gallery center: (106.7, 87.0), deltaX: 75.5 [09:45:27] [ICONS] Camera center: (182.2, 87.0), deltaX: 75.5 [09:45:27] [ICONS] Settings center: (257.7, 87.0), deltaX: 75.5 [09:45:27] [ICONS] Lock centerX: 333.2, deltaX from Settings: 75.5 [09:45:27] [ICONS] Bell centerX: 408.7, deltaX from Lock: 75.5 [09:45:27] [ICONS] LEFT MARGIN (screen left to Chat left): 11.2 [09:45:27] [ICONS] RIGHT MARGIN (Bell right to screen right): 11.3 [09:45:27] [ICONS] Screen width: 440.0 [09:45:27] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU2 [09:45:27] Trying API base: https://crivello.dyndns.org:443/WebRTC/public/ [09:45:27] Trying API base: https://crivello.dyndns.org:443/WebRTC/public/ [09:45:27] Token POST → https://crivello.dyndns.org:443/WebRTC/public/new_session.php?sid=iosILUIWU2 [09:45:27] new_session POST ok: token len=159 [09:45:27] HELLO → sent (fetched token, role=query) [09:45:27] [SIG] hello_ok received for query connection - ready to query agents [09:45:27] [SIG] get_agents request sent for sessionId=ILUIWU2 [09:45:27] [SIG] get_agents request sent for sessionId=iosILUIWU2 [09:45:27] [SERVER] Stopped reconnect polling [09:45:27] [SIG] agents_list received: [] [09:45:27] [SIG] agents_list received: [] [09:45:27] [COMBINED_FETCH] Loaded 10000 read receipts, 5 messages with reactions [09:45:27] [READBY_ENRICH] Enriched 50 messages with readBy data [09:45:27] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[1818, 1819, 1820, 1821, 1822] [09:45:27] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 50 messages [09:45:27] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909, 1911] [09:45:31] [LIFECYCLE] App resigning active - cleared crash flag [09:45:32] [SECURITY] sceneDidEnterBackground - isAuthenticated=true [09:45:32] [SECURITY] Saved background timestamp [09:45:32] [LIFECYCLE] App entering background - cleared crash flag [09:45:32] [CLIENT_SIG] Disconnecting [09:45:32] [LIFECYCLE] App entering background - disconnecting connections and stopping audio [09:45:32] [PUSH_TRACE] 💤 BACKGROUND: memory has 50 messages, first 10 IDs=[1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909, 1911] [09:45:32] [WS] stopSignalingAndPeer called - isQueryOnly=true, connectionStr=iosILUIWU2, wsState=0 [09:45:32] [WS] Canceling WebSocket for query connection to iosILUIWU2 [09:45:32] In cleanupPeer [09:45:32] In cleanupPeer [09:45:32] [LIFECYCLE] WebRTC audio disabled [09:45:32] [LIFECYCLE] AVAudioSession deactivated [09:45:32] [LIFECYCLE] All connections stopped [09:45:32] [SERVER] Stopped reconnect polling [09:45:32] Will request stop of video 0 [09:45:32] Will request stop of video 0 [09:45:32] [CLIENT_SIG] WebSocket closed with code 1001 [09:45:32] [CLIENT_SIG] Reconnecting in 2.0s (attempt 1) [09:45:32] [WS] WebSocket ACTUALLY CLOSED - isQueryOnly=true, connectionStr=iosILUIWU2, closeCode=1001 [09:45:32] [WS] Query connection to iosILUIWU2 closed - cleaning up all agent connections and views [09:45:32] [WS] Connection failed: The operation couldn’t be completed. Socket is not connected [09:45:32] [WS] Query connection failed - cleaning up all agent connections and views [09:45:32] [CLIENT_SIG] Receive error: Error Domain=NSPOSIXErrorDomain Code=57 "Socket is not connected" UserInfo={NSErrorFailingURLStringKey=http://crivello.dyndns.org:8081/, NSErrorFailingURLKey=http://crivello.dyndns.org:8081/} [09:45:32] [CLIENT_SIG] Reconnecting in 4.0s (attempt 2) [09:45:32] [PIP] Removing 0 tracks from PiP for connection 0 [09:45:32] [PIP] ✅ All tracks removed for connection 0 [09:45:32] [PIP] Removing 0 tracks from PiP for connection 0 [09:45:32] [PIP] ✅ All tracks removed for connection 0 [09:45:32] [CLEANUP] ======================================== [09:45:32] [CLEANUP] Cleaning up all agent connections and views [09:45:32] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [09:45:32] [CLEANUP] Stopped and removed 0 video connections [09:45:32] [CLEANUP] Removed 0 video views [09:45:32] [CLEANUP] Removed 0 feed scroll views [09:45:32] [CLEANUP] Removed 0 status labels [09:45:32] [CLEANUP] Reset agent query state [09:45:32] [CLEANUP] Updated page indicator [09:45:32] [CLEANUP] Rebuilt video layout [09:45:32] [CLEANUP] ✅ All agent connections and views cleaned up [09:45:32] [CLEANUP] ======================================== [09:45:32] [SERVER] Skipping reconnect polling - app is in background [09:45:32] [WS] URLSession invalidated successfully [09:45:32] [CLEANUP] ======================================== [09:45:32] [CLEANUP] Cleaning up all agent connections and views [09:45:32] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [09:45:32] [CLEANUP] Stopped and removed 0 video connections [09:45:32] [CLEANUP] Removed 0 video views [09:45:32] [CLEANUP] Removed 0 feed scroll views [09:45:32] [CLEANUP] Removed 0 status labels [09:45:32] [CLEANUP] Reset agent query state [09:45:32] [CLEANUP] Updated page indicator [09:45:32] [CLEANUP] Rebuilt video layout [09:45:32] [CLEANUP] ✅ All agent connections and views cleaned up [09:45:32] [CLEANUP] ======================================== [09:45:32] [SERVER] Skipping reconnect polling - app is in background [09:45:33] [WS] Creating new WebSocket - isQueryOnly=true, connectionStr=iosILUIWU2 [09:45:33] [WS] Opening session at ws://crivello.dyndns.org:8081/ [09:45:34] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU2 [09:45:34] HELLO → sent (cached token, role=query) [09:45:34] [SIG] hello_ok received for query connection - ready to query agents [09:45:34] [SIG] get_agents request sent for sessionId=ILUIWU2 [09:45:34] [SIG] get_agents request sent for sessionId=iosILUIWU2 [09:45:34] [SERVER] Stopped reconnect polling [09:45:34] [SIG] agents_list received: [] [09:45:34] [SIG] agents_list received: [] [09:45:36] [CLIENT_SIG] Connecting to session ILUIWU2 as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:45:36] [CLIENT_SIG] WebSocket opened [09:45:36] [CLIENT_SIG] HELLO sent as client for session ILUIWU2 [09:45:36] [CLIENT_SIG] Connected! clientId=cfnppcn8B6cFmmyX [09:45:36] [CLIENT_SIG] Received 2 clients for session 'ILUIWU2' (my session: 'ILUIWU2') [09:45:36] [CLIENT_SIG] - Lolo (3F6A8511-914A-4BE0-9540-3582F1C2DD43) [09:45:36] [CLIENT_SIG] - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:45:44] [WS] WebSocket task completed with error - isQueryOnly=true: The request timed out. [09:45:44] [WS] Query connection error - cleaning up all agent connections and views [09:45:44] [CLEANUP] ======================================== [09:45:44] [CLEANUP] Cleaning up all agent connections and views [09:45:44] [CLEANUP] Current state: vccs=0, videoViews=0, feedScrollViews=0 [09:45:44] [CLEANUP] Stopped and removed 0 video connections [09:45:44] [CLEANUP] Removed 0 video views [09:45:44] [CLEANUP] Removed 0 feed scroll views [09:45:44] [CLEANUP] Removed 0 status labels [09:45:44] [CLEANUP] Reset agent query state [09:45:44] [CLEANUP] Updated page indicator [09:45:44] [CLEANUP] Rebuilt video layout [09:45:44] [CLEANUP] ✅ All agent connections and views cleaned up [09:45:44] [CLEANUP] ======================================== [09:45:44] [SERVER] Skipping reconnect polling - app is in background [09:45:45] [CLIENT_SIG] Typing start from: Lolo (3F6A8511-914A-4BE0-9540-3582F1C2DD43) [09:45:48] [CLIENT_SIG] Typing stop from: Lolo (3F6A8511-914A-4BE0-9540-3582F1C2DD43) [09:45:50] [PUSH] Silent push received [09:45:50] [PUSH_TRACE] 🔔 SILENT PUSH at 2026-01-26 08:45:50 +0000, appState=2, message_id=19192 [09:45:50] [PUSH_TRACE] 🔔 SILENT: cache BEFORE: count=0, IDs=[] [09:45:50] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData START at 2026-01-26 08:45:50 +0000 [09:45:50] [PUSH_TRACE] ⬇️ Processing embedded message_id=19192 [09:45:50] [PUSH_EMBED] 📩 Received embedded message: id=19192, type=0, sender=Lolo [09:45:50] [PUSH_TRACE] ⬇️ Message details: text="Msg5...", datesent=2026-01-26 08:45:48 [09:45:50] [PUSH_TRACE] ⬇️ Session check: msgSession=ILUIWU2, currentSession=ILUIWU2 [09:45:50] [PUSH_TRACE] ⬇️ About to enter pushMessageQueue.sync for message 19192 [09:45:50] [PUSH_TRACE] ⬇️ INSIDE pushMessageQueue.sync for message 19192 [09:45:50] [PUSH_EMBED] ✅ Saved message 19192 to local DB (sync) [09:45:50] [PUSH_TRACE] ⬇️ EXITING pushMessageQueue.sync for message 19192 [09:45:50] [PUSH_TRACE] 📦 About to update PreloadedDataCache for message 19192 [09:45:50] [PUSH_TRACE] 📦 INSIDE cache update queue for message 19192 [09:45:50] [PUSH_TRACE] 📦 Cache state: valid=false, count=0, IDs=[] [09:45:50] [PUSH_EMBED] Created new cache with embedded message 19192 [09:45:50] [PUSH_TRACE] 📦 ✅ Created new cache with message 19192 [09:45:50] [PUSH_TRACE] 📦 EXITING cache update queue for message 19192 [09:45:50] [PUSH_EMBED] Fetching evolution data for message 19192 in background [09:45:50] [PUSH_EMBED] ✅ Fully processed message 19192 [09:45:50] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData END - SUCCESS for message 19192 [09:45:50] [PUSH_TRACE] 🔔 SILENT: cache AFTER: count=1, IDs=[19192], handled=true [09:45:50] [PUSH] Embedded message handled instantly from silent push [09:45:50] [PUSH_TRACE] 🔔 SILENT: About to post pollEventsNow notification [09:45:50] [PUSH_TRACE] 🔔 SILENT: Completed with .newData for message_id=19192 [09:45:50] [PUSH_UI] 🔔 handlePushMessageReceived CALLED [09:45:50] [PUSH_TRACE] 👁️ handlePushMessageReceived START [09:45:50] [PUSH_TRACE] 👁️ Received message id=19192, text="Msg5..." [09:45:50] [PUSH_UI_BLACKOUT] blackoutView=false, senderId=3F6A8511-914A-4BE0-9540-3582F1C2DD43, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, type=0 [09:45:50] [PUSH_TRACE] 👁️ BEFORE insert: 50 messages, first 5 IDs: [1818, 1819, 1820, 1821, 1822] [09:45:50] [PUSH_TRACE] 👁️ Inserted message 19192 at index 0 [09:45:50] [PUSH_UI] Inserted message 19192 into UI (now 51 messages) [09:45:50] [PUSH_TRACE] 👁️ AFTER insert: 51 messages, first 5 IDs: [19192, 1818, 1819, 1820, 1821] [09:45:50] [PUSH_TRACE] 👁️ handlePushMessageReceived END - success [09:45:50] [PUSH_TRACE] 📬 handlePollEventsNotification START: memory has 51 msgs, IDs=[19192, 1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909] [09:45:50] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("message_id"): 19192, AnyHashable("operation_type"): 0, AnyHashable("message_data"): { datesent = "2026-01-26 08:45:48"; "file_name" = ""; message = Msg5; "message_id" = 19192; "message_type" = 0; "prev_session_message_id" = 19191; "sender_id" = "3F6A8511-914A-4BE0-9540-3582F1C2DD43"; "sender_name" = Lolo; "session_id" = ILUIWU2; timer = 0; }, AnyHashable("session_id"): ILUIWU2] [09:45:50] [PUSH_EMBED_VC] Message 19192 already in memory - skipping [09:45:50] [PUSH] ⚡ Embedded message handled directly in ViewController [09:45:50] [PUSH] Parsed message_id: 19192 [09:45:50] [PUSH] Parsed operation_type: 0 [09:45:50] [PUSH] Taking direct action: opType=0, messageId=19192 [09:45:50] [PUSH] TakeActionFromPush called: OperationType=0, MessageIds=19192 [09:45:50] [PUSH] ⚡ Message 19192 already in memory - skipping duplicate notification entirely [09:45:50] [PUSH_EMBED] Got evolution data for message 19192, saving to local DB [09:45:50] [PUSH_EMBED] Saved evolution data for message 19192 [09:45:51] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=51, first5Ids=[19192, 1818, 1819, 1820, 1821] [09:45:51] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 51 messages [09:45:51] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [19192, 1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909] [09:45:51] [EVOLUTION_FILTER] 📝 Updated lastSeenMessageId after marking as read: 19191 → 19192 [09:45:52] [CLIENT_SIG] Typing start from: Lolo (3F6A8511-914A-4BE0-9540-3582F1C2DD43) [09:45:58] [CLIENT_SIG] Event received: type=0 messageId=19192 [09:45:58] [WS_EVENT] Received event: type=0, messageId=19192 [09:45:58] [WS_EVENT] 📨 New message notification (msgId=19192) - triggering incremental refresh, currentMsgCount=51 [09:45:58] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=51 [09:45:58] [PUSH_TRACE] 📡 INCREMENTAL: maxLocalId (from DB)=19192, maxMemoryId=19192 [09:45:58] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19192 [09:45:58] [INCREMENTAL_SYNC] ✅ No new messages [09:45:58] [WS_EVENT] ✅ Incremental refresh complete, newMsgCount=51 [09:45:58] [CLIENT_SIG] Typing stop from: Lolo (3F6A8511-914A-4BE0-9540-3582F1C2DD43) [09:46:00] [PUSH] Silent push received [09:46:00] [PUSH_TRACE] 🔔 SILENT PUSH at 2026-01-26 08:46:00 +0000, appState=2, message_id=nil [09:46:00] [PUSH_TRACE] 🔔 SILENT: cache BEFORE: count=1, IDs=[19192] [09:46:00] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData START at 2026-01-26 08:46:00 +0000 [09:46:00] [PUSH_EMBED] No embedded message_data in notification [09:46:00] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData END - no message_data [09:46:00] [PUSH_TRACE] 🔔 SILENT: cache AFTER: count=1, IDs=[19192], handled=false [09:46:00] [PUSH] No embedded data, pre-loading messages from server [09:46:00] [PUSH_PRELOAD] Fetching messages for instant display cache [09:46:00] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [09:46:00] [PUSH_TRACE] 🔀 mergeMessages called: newMessages.count=50, sessionId=ILUIWU2 [09:46:00] [PUSH_TRACE] 🔀 mergeMessages: newMessages IDs=[19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158, 17157] [09:46:00] [PUSH_TRACE] 🔀 mergeMessages: existingMessages.count=1, IDs=[19192] [09:46:00] [PUSH_TRACE] 🔀 mergeMessages: preservedMessages.count=0, IDs=[] [09:46:00] [PUSH_TRACE] 🔀 mergeMessages: merged.count=50, first 10 IDs=[19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158, 17157] [09:46:00] [PUSH_PRELOAD] ⚡ Pre-cached 50 messages for instant display (preserved 0 from push) [09:46:00] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [09:46:00] [PUSH_TRACE] 📬 handlePollEventsNotification START: memory has 51 msgs, IDs=[19192, 1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909] [09:46:00] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU2, AnyHashable("message_id"): 19192, AnyHashable("aps"): { "content-available" = 1; }] [09:46:00] [PUSH] Parsed message_id: 19192 [09:46:00] [PUSH] Parsed operation_type: 3 [09:46:00] [PUSH] Taking direct action: opType=3, messageId=19192 [09:46:00] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19192 [09:46:00] [CLIENT_SIG] Typing start from: Lolo (3F6A8511-914A-4BE0-9540-3582F1C2DD43) [09:46:01] [PUSH] Silent push received [09:46:01] [PUSH_TRACE] 🔔 SILENT PUSH at 2026-01-26 08:46:01 +0000, appState=2, message_id=19193 [09:46:01] [PUSH_TRACE] 🔔 SILENT: cache BEFORE: count=50, IDs=[19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158, 17157] [09:46:01] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData START at 2026-01-26 08:46:01 +0000 [09:46:01] [PUSH_TRACE] ⬇️ Processing embedded message_id=19193 [09:46:01] [PUSH_EMBED] 📩 Received embedded message: id=19193, type=0, sender=Lolo [09:46:01] [PUSH_TRACE] ⬇️ Message details: text="Msg6...", datesent=2026-01-26 08:45:59 [09:46:01] [PUSH_TRACE] ⬇️ Session check: msgSession=ILUIWU2, currentSession=ILUIWU2 [09:46:01] [PUSH_TRACE] ⬇️ About to enter pushMessageQueue.sync for message 19193 [09:46:01] [PUSH_TRACE] ⬇️ INSIDE pushMessageQueue.sync for message 19193 [09:46:01] [PUSH_EMBED] ✅ Saved message 19193 to local DB (sync) [09:46:01] [PUSH_TRACE] ⬇️ EXITING pushMessageQueue.sync for message 19193 [09:46:01] [PUSH_TRACE] 📦 About to update PreloadedDataCache for message 19193 [09:46:01] [PUSH_TRACE] 📦 INSIDE cache update queue for message 19193 [09:46:01] [PUSH_TRACE] 📦 Cache state: valid=true, count=50, IDs=[19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158, 17157] [09:46:01] [PUSH_TRACE] 📦 ⚠️ Message 19193 already in cache, skipping insert [09:46:01] [PUSH_TRACE] 📦 EXITING cache update queue for message 19193 [09:46:01] [PUSH_EMBED] Fetching evolution data for message 19193 in background [09:46:01] [PUSH_EMBED] ✅ Fully processed message 19193 [09:46:01] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData END - SUCCESS for message 19193 [09:46:01] [PUSH_TRACE] 🔔 SILENT: cache AFTER: count=50, IDs=[19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158, 17157], handled=true [09:46:01] [PUSH] Embedded message handled instantly from silent push [09:46:01] [PUSH_TRACE] 🔔 SILENT: About to post pollEventsNow notification [09:46:01] [PUSH_TRACE] 🔔 SILENT: Completed with .newData for message_id=19193 [09:46:01] [PUSH_UI] 🔔 handlePushMessageReceived CALLED [09:46:01] [PUSH_TRACE] 👁️ handlePushMessageReceived START [09:46:01] [PUSH_TRACE] 👁️ Received message id=19193, text="Msg6..." [09:46:01] [PUSH_UI_BLACKOUT] blackoutView=false, senderId=3F6A8511-914A-4BE0-9540-3582F1C2DD43, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, type=0 [09:46:01] [PUSH_TRACE] 👁️ BEFORE insert: 51 messages, first 5 IDs: [19192, 1818, 1819, 1820, 1821] [09:46:01] [PUSH_TRACE] 👁️ Inserted message 19193 at index 0 [09:46:01] [PUSH_UI] Inserted message 19193 into UI (now 52 messages) [09:46:01] [PUSH_TRACE] 👁️ AFTER insert: 52 messages, first 5 IDs: [19193, 19192, 1818, 1819, 1820] [09:46:01] [PUSH_TRACE] 👁️ handlePushMessageReceived END - success [09:46:01] [PUSH_TRACE] 📬 handlePollEventsNotification START: memory has 52 msgs, IDs=[19193, 19192, 1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908] [09:46:01] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("message_data"): { datesent = "2026-01-26 08:45:59"; "file_name" = ""; message = Msg6; "message_id" = 19193; "message_type" = 0; "prev_session_message_id" = 19192; "sender_id" = "3F6A8511-914A-4BE0-9540-3582F1C2DD43"; "sender_name" = Lolo; "session_id" = ILUIWU2; timer = 0; }, AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19193, AnyHashable("session_id"): ILUIWU2] [09:46:01] [PUSH_EMBED_VC] Message 19193 already in memory - skipping [09:46:01] [PUSH] ⚡ Embedded message handled directly in ViewController [09:46:01] [PUSH] Parsed message_id: 19193 [09:46:01] [PUSH] Parsed operation_type: 0 [09:46:01] [PUSH] Taking direct action: opType=0, messageId=19193 [09:46:01] [PUSH] TakeActionFromPush called: OperationType=0, MessageIds=19193 [09:46:01] [PUSH] ⚡ Message 19193 already in memory - skipping duplicate notification entirely [09:46:01] [PUSH_EMBED] Got evolution data for message 19193, saving to local DB [09:46:01] [PUSH_EMBED] Saved evolution data for message 19193 [09:46:01] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=52, first5Ids=[19193, 19192, 1818, 1819, 1820] [09:46:01] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 52 messages [09:46:01] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [19193, 19192, 1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908] [09:46:02] [CLIENT_SIG] Typing stop from: Lolo (3F6A8511-914A-4BE0-9540-3582F1C2DD43) [09:46:09] [CLIENT_SIG] Event received: type=0 messageId=19193 [09:46:09] [WS_EVENT] Received event: type=0, messageId=19193 [09:46:09] [WS_EVENT] 📨 New message notification (msgId=19193) - triggering incremental refresh, currentMsgCount=52 [09:46:09] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=52 [09:46:09] [PUSH_TRACE] 📡 INCREMENTAL: maxLocalId (from DB)=19193, maxMemoryId=19193 [09:46:09] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19193 [09:46:09] [INCREMENTAL_SYNC] ✅ Found 1 new messages [09:46:09] [PUSH_TRACE] 📡 INCREMENTAL: Server returned 1 new messages, IDs=[19194] [09:46:09] [PUSH_TRACE] 📡 INCREMENTAL: BEFORE merge, memory has 52 msgs, first 10 IDs=[19193, 19192, 1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908] [09:46:09] [PUSH_TRACE] 📡 INCREMENTAL: Adding new message id=19194 [09:46:09] [PUSH_TRACE] 📡 INCREMENTAL: AFTER merge, added 1 new, total 53, first 10 IDs=[1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909, 1911] [09:46:09] [BLACKOUT_DEBUG] blackoutView=nil, newMessages.count=1 [09:46:09] [WS_EVENT] ✅ Incremental refresh complete, newMsgCount=53 [09:46:09] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=53, first5Ids=[1818, 1819, 1820, 1821, 1822] [09:46:09] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 53 messages [09:46:09] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909, 1911] [09:46:09] [CLIENT_SIG] Event received: type=3 messageId=19192 [09:46:09] [WS_EVENT] Received event: type=3, messageId=19192 [09:46:09] [WS_EVENT] Read receipt for message 19192 by Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:46:11] [PUSH] Silent push received [09:46:11] [PUSH_TRACE] 🔔 SILENT PUSH at 2026-01-26 08:46:11 +0000, appState=2, message_id=19194 [09:46:11] [PUSH_TRACE] 🔔 SILENT: cache BEFORE: count=50, IDs=[19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158, 17157] [09:46:11] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData START at 2026-01-26 08:46:11 +0000 [09:46:11] [PUSH_TRACE] ⬇️ Processing embedded message_id=19194 [09:46:11] [PUSH_EMBED] 📩 Received embedded message: id=19194, type=0, sender=Lolo [09:46:11] [PUSH_TRACE] ⬇️ Message details: text="Msg7...", datesent=2026-01-26 08:46:02 [09:46:11] [PUSH_TRACE] ⬇️ Session check: msgSession=ILUIWU2, currentSession=ILUIWU2 [09:46:11] [PUSH_TRACE] ⬇️ About to enter pushMessageQueue.sync for message 19194 [09:46:11] [PUSH_TRACE] ⬇️ INSIDE pushMessageQueue.sync for message 19194 [09:46:11] [PUSH_EMBED] ✅ Saved message 19194 to local DB (sync) [09:46:11] [PUSH_TRACE] ⬇️ EXITING pushMessageQueue.sync for message 19194 [09:46:11] [PUSH_TRACE] 📦 About to update PreloadedDataCache for message 19194 [09:46:11] [PUSH_TRACE] 📦 INSIDE cache update queue for message 19194 [09:46:11] [PUSH_TRACE] 📦 Cache state: valid=true, count=50, IDs=[19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158, 17157] [09:46:11] [PUSH_EMBED] Inserted message 19194 into existing cache (now 51 messages) [09:46:11] [PUSH_TRACE] 📦 ✅ Inserted message 19194, cache now has IDs: [19194, 19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158] [09:46:11] [PUSH_TRACE] 📦 EXITING cache update queue for message 19194 [09:46:11] [PUSH_EMBED] Fetching evolution data for message 19194 in background [09:46:11] [PUSH_EMBED] ✅ Fully processed message 19194 [09:46:11] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData END - SUCCESS for message 19194 [09:46:11] [PUSH_TRACE] 🔔 SILENT: cache AFTER: count=51, IDs=[19194, 19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158], handled=true [09:46:11] [PUSH] Embedded message handled instantly from silent push [09:46:11] [PUSH_TRACE] 🔔 SILENT: About to post pollEventsNow notification [09:46:11] [PUSH_TRACE] 🔔 SILENT: Completed with .newData for message_id=19194 [09:46:11] [PUSH_UI] 🔔 handlePushMessageReceived CALLED [09:46:11] [PUSH_TRACE] 👁️ handlePushMessageReceived START [09:46:11] [PUSH_TRACE] 👁️ Received message id=19194, text="Msg7..." [09:46:11] [PUSH_UI_BLACKOUT] blackoutView=false, senderId=3F6A8511-914A-4BE0-9540-3582F1C2DD43, myUserId=3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, type=0 [09:46:11] [PUSH_UI] Message 19194 already in memory - skipping insert [09:46:11] [PUSH_TRACE] 👁️ handlePushMessageReceived END - already exists [09:46:11] [PUSH_TRACE] 📬 handlePollEventsNotification START: memory has 53 msgs, IDs=[1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909, 1911] [09:46:11] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("operation_type"): 0, AnyHashable("message_id"): 19194, AnyHashable("message_data"): { datesent = "2026-01-26 08:46:02"; "file_name" = ""; message = Msg7; "message_id" = 19194; "message_type" = 0; "prev_session_message_id" = 19193; "sender_id" = "3F6A8511-914A-4BE0-9540-3582F1C2DD43"; "sender_name" = Lolo; "session_id" = ILUIWU2; timer = 0; }, AnyHashable("session_id"): ILUIWU2] [09:46:11] [PUSH_EMBED_VC] Message 19194 already in memory - skipping [09:46:11] [PUSH] ⚡ Embedded message handled directly in ViewController [09:46:11] [PUSH] Parsed message_id: 19194 [09:46:11] [PUSH] Parsed operation_type: 0 [09:46:11] [PUSH] Taking direct action: opType=0, messageId=19194 [09:46:11] [PUSH] TakeActionFromPush called: OperationType=0, MessageIds=19194 [09:46:11] [PUSH] ⚡ Message 19194 already in memory - skipping duplicate notification entirely [09:46:11] [EVOLUTION_FILTER] 📝 Updated lastSeenMessageId after marking as read: 19192 → 19193 [09:46:11] [PUSH_EMBED] Got evolution data for message 19194, saving to local DB [09:46:11] [EVOLUTION_FILTER] 📝 Updated lastSeenMessageId after marking as read: 19193 → 19194 [09:46:11] [PUSH_EMBED] Saved evolution data for message 19194 [09:46:18] [CLIENT_SIG] Event received: type=0 messageId=19194 [09:46:18] [WS_EVENT] Received event: type=0, messageId=19194 [09:46:18] [WS_EVENT] 📨 New message notification (msgId=19194) - triggering incremental refresh, currentMsgCount=53 [09:46:18] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=53 [09:46:18] [PUSH_TRACE] 📡 INCREMENTAL: maxLocalId (from DB)=19194, maxMemoryId=19194 [09:46:18] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19194 [09:46:18] [INCREMENTAL_SYNC] ✅ No new messages [09:46:18] [WS_EVENT] ✅ Incremental refresh complete, newMsgCount=53 [09:46:20] [PUSH] Silent push received [09:46:20] [PUSH_TRACE] 🔔 SILENT PUSH at 2026-01-26 08:46:20 +0000, appState=2, message_id=nil [09:46:20] [PUSH_TRACE] 🔔 SILENT: cache BEFORE: count=51, IDs=[19194, 19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158] [09:46:20] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData START at 2026-01-26 08:46:20 +0000 [09:46:20] [PUSH_EMBED] No embedded message_data in notification [09:46:20] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData END - no message_data [09:46:20] [PUSH_TRACE] 🔔 SILENT: cache AFTER: count=51, IDs=[19194, 19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158], handled=false [09:46:20] [PUSH] No embedded data, pre-loading messages from server [09:46:20] [PUSH_PRELOAD] Fetching messages for instant display cache [09:46:20] [PUSH] Silent push received [09:46:20] [PUSH_TRACE] 🔔 SILENT PUSH at 2026-01-26 08:46:20 +0000, appState=2, message_id=nil [09:46:20] [PUSH_TRACE] 🔔 SILENT: cache BEFORE: count=51, IDs=[19194, 19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158] [09:46:20] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData START at 2026-01-26 08:46:20 +0000 [09:46:20] [PUSH_EMBED] No embedded message_data in notification [09:46:20] [PUSH_TRACE] ⬇️ handleEmbeddedMessageData END - no message_data [09:46:20] [PUSH_TRACE] 🔔 SILENT: cache AFTER: count=51, IDs=[19194, 19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158], handled=false [09:46:20] [PUSH] No embedded data, pre-loading messages from server [09:46:20] [PUSH_PRELOAD] Fetching messages for instant display cache [09:46:20] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [09:46:20] [PUSH_TRACE] 🔀 mergeMessages called: newMessages.count=50, sessionId=ILUIWU2 [09:46:20] [PUSH_TRACE] 🔀 mergeMessages: newMessages IDs=[19194, 19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158] [09:46:20] [PUSH_TRACE] 🔀 mergeMessages: existingMessages.count=51, IDs=[19194, 19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158] [09:46:20] [PRELOAD_CACHE] Preserving 1 push-inserted messages: [1820] [09:46:20] [PUSH_TRACE] 🔀 mergeMessages: preservedMessages.count=1, IDs=[1820] [09:46:20] [PUSH_TRACE] 🔀 mergeMessages: merged.count=51, first 10 IDs=[19194, 19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158] [09:46:20] [PUSH_PRELOAD] ⚡ Pre-cached 51 messages for instant display (preserved 1 from push) [09:46:20] [PUSH_PRELOAD] Fetched 50 messages - caching for instant display [09:46:20] [PUSH_TRACE] 🔀 mergeMessages called: newMessages.count=50, sessionId=ILUIWU2 [09:46:20] [PUSH_TRACE] 🔀 mergeMessages: newMessages IDs=[19194, 19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158] [09:46:20] [PUSH_TRACE] 🔀 mergeMessages: existingMessages.count=51, IDs=[19194, 19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158] [09:46:20] [PRELOAD_CACHE] Preserving 1 push-inserted messages: [1820] [09:46:20] [PUSH_TRACE] 🔀 mergeMessages: preservedMessages.count=1, IDs=[1820] [09:46:20] [PUSH_TRACE] 🔀 mergeMessages: merged.count=51, first 10 IDs=[19194, 19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158] [09:46:20] [PUSH_PRELOAD] ⚡ Pre-cached 51 messages for instant display (preserved 1 from push) [09:46:20] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [09:46:20] [PUSH_TRACE] 📬 handlePollEventsNotification START: memory has 53 msgs, IDs=[1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909, 1911] [09:46:20] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("message_id"): 19194, AnyHashable("session_id"): ILUIWU2] [09:46:20] [PUSH] Parsed message_id: 19194 [09:46:20] [PUSH] Parsed operation_type: 3 [09:46:20] [PUSH] Taking direct action: opType=3, messageId=19194 [09:46:20] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19194 [09:46:20] [PUSH_PRELOAD] ✅ Pre-load complete with thumbnails [09:46:21] [PUSH_TRACE] 📬 handlePollEventsNotification START: memory has 53 msgs, IDs=[1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909, 1911] [09:46:21] [PUSH] handlePollEventsNotification userInfo: [AnyHashable("aps"): { "content-available" = 1; }, AnyHashable("operation_type"): 3, AnyHashable("session_id"): ILUIWU2, AnyHashable("message_id"): 19193] [09:46:21] [PUSH] Parsed message_id: 19193 [09:46:21] [PUSH] Parsed operation_type: 3 [09:46:21] [PUSH] Taking direct action: opType=3, messageId=19193 [09:46:21] [PUSH] TakeActionFromPush called: OperationType=3, MessageIds=19193 [09:46:29] [CLIENT_SIG] Event received: type=3 messageId=19193 [09:46:29] [WS_EVENT] Received event: type=3, messageId=19193 [09:46:29] [WS_EVENT] Read receipt for message 19193 by Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:46:29] [CLIENT_SIG] Event received: type=3 messageId=19194 [09:46:29] [WS_EVENT] Received event: type=3, messageId=19194 [09:46:29] [WS_EVENT] Read receipt for message 19194 by Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:46:31] [SECURITY] Timeout check: elapsed=59.94228196144104s, timeout=300.0s [09:46:31] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU2 [09:46:31] [CLIENT_SIG] Already connected/connecting to session ILUIWU2 [09:46:31] [LIFECYCLE] App entering foreground - restoring connections [09:46:31] [PUSH_TRACE] 🔄 FOREGROUND: memory has 53 msgs, IDs=[1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909, 1911] [09:46:31] [PUSH_TRACE] 🔄 FOREGROUND: cache has 51 msgs, valid=true, IDs=[19194, 19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158] [09:46:31] [UPLOAD_RETRY] No pending uploads to retry [09:46:31] [LIFECYCLE] Merged 978 reactions from local DB [09:46:31] [LIFECYCLE] WebRTC audio re-enabled [09:46:31] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone) [09:46:31] [CLIENT_SIG] Setting up client signaling for session: ILUIWU2 [09:46:31] [CLIENT_SIG] Already connected/connecting to session ILUIWU2 [09:46:31] [VIEWER] Reconnecting after background - querying agents [09:46:31] [UNSENT_RETRY] Checking for unsent messages... [09:46:31] [PENDING_UPLOAD] Total pending upload messages: 0 [09:46:31] [UNSENT_RETRY] No unsent messages found [09:46:32] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=53, first5Ids=[1818, 1819, 1820, 1821, 1822] [09:46:32] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 53 messages [09:46:32] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909, 1911] [09:46:32] [SECURITY] sceneDidBecomeActive - isAuthenticated=true, didEnterBackground=true [09:46:32] [SECURITY] Within timeout - cleared background flag [09:46:32] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow [09:46:32] [PUSH_TRACE] 📬 handlePollEventsNotification START: memory has 53 msgs, IDs=[1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909, 1911] [09:46:32] [PUSH] handlePollEventsNotification userInfo: [:] [09:46:32] [PUSH] No message_id in userInfo [09:46:32] [PUSH] No operation_type in userInfo [09:46:32] [FAST_REFRESH] Evolution disabled - performing incremental sync [09:46:32] [PUSH_TRACE] 📬 POLL: cache state: valid=true, count=51, IDs=[19194, 19193, 19192, 19191, 19190, 19189, 19188, 17161, 17159, 17158] [09:46:32] [PUSH_TRACE] 📬 POLL: memory state: count=53, first 10 IDs=[1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909, 1911] [09:46:32] [FAST_REFRESH] Already have 53 messages - skipping local DB load [09:46:32] [PUSH_TRACE] ⚠️ POLL: NOT loading from DB because allMessagesWithReadBy has 53 messages [09:46:32] [FAST_REFRESH] About to call reloadMessagesForCurrentTab(), isMainThread=true, viewLoaded=true [09:46:32] [FAST_REFRESH] reloadMessagesForCurrentTab() called successfully [09:46:32] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=53 [09:46:32] [PUSH_TRACE] 📡 INCREMENTAL: maxLocalId (from DB)=19194, maxMemoryId=19194 [09:46:32] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19194 [09:46:32] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=53, first5Ids=[1818, 1819, 1820, 1821, 1822] [09:46:32] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 53 messages [09:46:32] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909, 1911] [09:46:32] [INCREMENTAL_SYNC] ✅ No new messages [09:46:32] [FAST_REFRESH] Incremental sync complete - 53 messages [09:46:32] [COMBINED_FETCH] Loaded 10000 read receipts, 5 messages with reactions [09:46:32] [FOREGROUND] Enriched 0 messages with readBy data from server [09:46:33] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=53, first5Ids=[1818, 1819, 1820, 1821, 1822] [09:46:33] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 53 messages [09:46:33] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909, 1911] [09:46:33] [COMBINED_FETCH] Loaded 10000 read receipts, 5 messages with reactions [09:46:33] [FAST_REFRESH] Enriched 53 messages with readBy data [09:46:33] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=53, first5Ids=[1818, 1819, 1820, 1821, 1822] [09:46:33] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 53 messages [09:46:33] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [1818, 1819, 1820, 1821, 1822, 1823, 1891, 1908, 1909, 1911] [09:46:53] [CRASH] No crash detected [09:46:53] [FONT] Roboto fonts loaded successfully: Roboto-Regular [09:46:53] [FONT] ChatFont.regular(18) returns: Roboto-Regular, family: Roboto [09:46:53] [GIPHY] SDK not available - using REST API fallback [09:46:53] [BACKGROUND] Background fetch enabled [09:46:53] [SECURITY] Initial launch - within timeout (81.50501608848572s < 300.0s) [09:46:53] [AUTH] Starting PIN authentication [09:46:53] [CLEANUP] No old timer messages to delete [09:46:53] [CLIENT_SIG] Reconnecting on foreground for session: ILUIWU2 [09:46:53] [CLIENT_SIG] Connecting to session ILUIWU2 as Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:46:53] [PUSH] APNs token: 6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c [09:46:53] [PUSH] register_device.php HTTP 200: {"status":"ok","session_id":"ILUIWU2","token":"6c0571d5e4b29f63eac8424c26f3737968330e20febf8cd9a320b0952fc80c1c","role":"viewer","muted":1,"removed_from_other_channels":0} [09:46:53] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [09:46:53] [USER] ✅ User registered successfully [09:46:53] [PUSH] User registration after token update: success [09:46:53] [SECURITY] sceneDidBecomeActive - isAuthenticated=false, didEnterBackground=false [09:46:53] [PUSH_DEBUG] 🟢 App became ACTIVE - resetting badges and triggering pollEventsNow [09:46:53] [CLIENT_SIG] WebSocket opened [09:46:53] [CLIENT_SIG] HELLO sent as client for session ILUIWU2 [09:46:53] [CLIENT_SIG] Connected! clientId=JJ6aIwtEM9ctTwzw [09:46:53] [CLIENT_SIG] Received 2 clients for session 'ILUIWU2' (my session: 'ILUIWU2') [09:46:53] [CLIENT_SIG] - Lolo (3F6A8511-914A-4BE0-9540-3582F1C2DD43) [09:46:53] [CLIENT_SIG] - Laurent (3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF) [09:46:53] [PRELOAD] ⚡ Starting message pre-load during authentication (since_id=19194)... [09:46:53] [PRELOAD] No messages or parse error [09:46:55] [PIN_AUTH] Correct PIN [09:46:55] [SECURITY] Restored real session: ILUIWU2 [09:46:55] [SECURITY] Restored real session: ILUIWU2 [09:46:55] [SECURITY] Saved real session: ILUIWU2 [09:46:55] [SCENE] Launched directly to chat view with sessionId: ILUIWU2 [09:46:55] [AUDIO] ✅ Chat mode - audio will be managed by WebRTCViewer (no microphone) [09:46:55] Documents Directory: /var/mobile/Containers/Data/Application/A47A5FFA-E0A7-4C62-BEA2-22D916EA9B09/Documents [09:46:55] [UPLOAD_QUEUE] Found 0 pending uploads to resume [09:46:55] [THEME] Applying current theme [09:46:55] [CHAT] Applied day theme (mode: day) [09:46:55] [SECURITY] Saved real session: ILUIWU2 [09:46:55] [CLIENT_SIG] Setting up client signaling for session: ILUIWU2 [09:46:55] [CLIENT_SIG] Already connected/connecting to session ILUIWU2 [09:46:55] [NETWORK] Network monitor started [09:46:55] [NETWORK] Status changed: connected [09:46:55] Did transition [09:46:55] [MODE] 🔍 updateModeUI called - currentTabIndex=0, sessionId=ILUIWU2 [09:46:55] [VIEWER] Screen lock enabled - normal idle behavior [09:46:55] [QUERY] 🔍 Creating query connection for iOS slave: iosILUIWU2 [09:46:55] [VCC] ========== VideoConnectionClass INIT ========== [09:46:55] [VCC] Session: iosILUIWU2, ViewIdx: 0, AgentId: nil [09:46:55] [DATA AUDIO] ========== setupWebRTC() START ========== [09:46:55] [DATA AUDIO] Using data channel for audio - bypassing WebRTC audio device [09:46:55] [DATA AUDIO] Creating encoder/decoder factories... [09:46:55] [CODEC] Viewer - Available video codecs: H264, H264, VP8, VP9, AV1 [09:46:55] [CODEC] Viewer selected encoder: AV1 (best quality) [09:46:55] [DATA AUDIO] Creating RTCPeerConnectionFactory... [09:46:55] [DATA AUDIO] ✅ Factory created [09:46:55] [DATA AUDIO] RTCAudioSession locked [09:46:55] [DATA AUDIO] Set useManualAudio=true, isAudioEnabled=false [09:46:55] [DATA AUDIO] RTCAudioSession unlocked [09:46:55] [DATA AUDIO] Skipping AVAudioSession config - handled by DataChannelAudioPlayer [09:46:55] [VCC] Initial ICE servers: ["stun:stun.l.google.com:19302", "turn:crivello.dyndns.org:3478?transport=udp", "turn:crivello.dyndns.org:3478?transport=tcp", "turns:crivello.dyndns.org:5349?transport=tcp"] [09:46:55] [WS] Creating new WebSocket - isQueryOnly=false, connectionStr=iosILUIWU2 [09:46:55] [WS] Opening session at ws://crivello.dyndns.org:8081/ [09:46:55] [QUERY] ✅ tempQueryConnection created for iosILUIWU2 [09:46:55] [VIEWER_INIT] Already have 50 messages - just filtering for tab [09:46:55] [EVENT_POLL] Event polling disabled - using WebSocket events instead [09:46:55] [ORIENTATION] Updated pagingScrollView height to 247.5 for width 440.0 [09:46:55] Did transition [09:46:55] [TABLEVIEW] cellForRowAt index 0 out of bounds (count=0) [09:46:55] [USER] Registering user: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF, name: Laurent [09:46:55] [CHUNK] Merged 978 reactions synchronously [09:46:55] [RELOAD_TAB] ⏳ Already pending, waiting for debounce [09:46:55] [GALLERY_DB] Loading ALL media messages for session: ILUIWU2 [09:46:55] [MIGRATION] Found 3 messages needing sender_name backfill [09:46:55] [GALLERY_DB] Raw datesent for msg 4147: '2025-12-07 13:57:55' [09:46:55] [GALLERY_DB] Raw datesent for msg 3275: '2025-12-04 12:57:27' [09:46:55] [GALLERY_DB] Raw datesent for msg 3258: '2025-12-04 11:07:25' [09:46:55] [GALLERY_DB] ✅ Loaded 8 media messages [09:46:55] [GALLERY] Filtered 8 -> 4 (only with local thumbnails) [09:46:55] [GALLERY] First 5 after sort (newest first): [09:46:55] [GALLERY] 0: id=4147, date=2025-12-07 13:57:55, file=8f9a7578f1011fa7.png [09:46:55] [GALLERY] 1: id=3275, date=2025-12-04 12:57:27, file=979ed1b3bb8031c5.heic [09:46:55] [GALLERY] 2: id=3258, date=2025-12-04 11:07:25, file=46824a6556317ee6.mov [09:46:55] [GALLERY] 3: id=2616, date=2025-11-29 16:12:09, file=92668b65c604182e.jpeg [09:46:55] [USER] ✅ User registered successfully [09:46:55] [USER] User registration successful [09:46:55] [SCROLL_BTN] Showing button - 32pt from bottom > half 22pt [09:46:55] [SERVER] Starting reconnect polling (5s interval) [09:46:55] [ICONS] Screen width: 440.0, Tab spacing: 75.5 [09:46:55] [ICONS] Offset applied: -14.6 [09:46:55] [ICONS] New left margin: 11.2, New right margin: 11.3 [09:46:55] [MIGRATION] Failed to parse user names response [09:46:55] [INCREMENTAL_SYNC] 🔄 Starting incremental refresh, currentMsgCount=50 [09:46:55] [PUSH_TRACE] 📡 INCREMENTAL: maxLocalId (from DB)=19194, maxMemoryId=19194 [09:46:55] [INCREMENTAL_SYNC] 📡 Fetching messages since ID 19194 [09:46:55] [INCREMENTAL_SYNC] ✅ No new messages [09:46:55] [PURGE] ⚠️ Media cache purge DISABLED for debugging [09:46:55] [UNSENT_RETRY] Checking for unsent messages... [09:46:55] [UPLOAD_RECOVERY] ========== CHECKING FOR MISSING UPLOADS ========== [09:46:55] [UPLOAD_RECOVERY] User ID: 3B8A4F00-5ABD-47E5-8C88-F15DA9EF83AF [09:46:55] [UPLOAD_RECOVERY] Session: ILUIWU2 [09:46:55] [UPLOAD_RECOVERY] ✅ No stuck uploads found [09:46:55] [UPLOAD_RECOVERY] Checking recent media messages on server... [09:46:55] [UPLOAD_RECOVERY] No recent media messages to check on server [09:46:55] [PENDING_UPLOAD] Total pending upload messages: 0 [09:46:55] [UNSENT_RETRY] No unsent messages found [09:46:55] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[1821, 1822, 1823, 1891, 1908] [09:46:55] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 50 messages [09:46:55] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [1821, 1822, 1823, 1891, 1908, 1909, 1911, 1913, 2351, 2352] [09:46:55] [EMOJI] ✅ Loaded 451 emoji-to-GIF mappings [09:46:55] [ICONS] Chat center: (31.2, 87.0) [09:46:55] [ICONS] Gallery center: (106.7, 87.0), deltaX: 75.5 [09:46:55] [ICONS] Camera center: (182.2, 87.0), deltaX: 75.5 [09:46:55] [ICONS] Settings center: (257.7, 87.0), deltaX: 75.5 [09:46:55] [ICONS] Lock centerX: 333.2, deltaX from Settings: 75.5 [09:46:55] [ICONS] Bell centerX: 408.7, deltaX from Lock: 75.5 [09:46:55] [ICONS] LEFT MARGIN (screen left to Chat left): 11.2 [09:46:55] [ICONS] RIGHT MARGIN (Bell right to screen right): 11.3 [09:46:55] [ICONS] Screen width: 440.0 [09:46:55] [WS] WebSocket ACTUALLY OPENED - isQueryOnly=true, connectionStr=iosILUIWU2 [09:46:55] Trying API base: https://crivello.dyndns.org:443/WebRTC/public/ [09:46:55] Trying API base: https://crivello.dyndns.org:443/WebRTC/public/ [09:46:55] Token POST → https://crivello.dyndns.org:443/WebRTC/public/new_session.php?sid=iosILUIWU2 [09:46:56] new_session POST ok: token len=159 [09:46:56] HELLO → sent (fetched token, role=query) [09:46:56] [SIG] hello_ok received for query connection - ready to query agents [09:46:56] [SIG] get_agents request sent for sessionId=ILUIWU2 [09:46:56] [SIG] get_agents request sent for sessionId=iosILUIWU2 [09:46:56] [SERVER] Stopped reconnect polling [09:46:56] [SIG] agents_list received: [] [09:46:56] [SIG] agents_list received: [] [09:46:56] [COMBINED_FETCH] Loaded 10000 read receipts, 5 messages with reactions [09:46:56] [READBY_ENRICH] Enriched 50 messages with readBy data [09:46:56] [RELOAD_TAB] 🔄 reloadMessagesForCurrentTab called, allMsgsCount=50, first5Ids=[1821, 1822, 1823, 1891, 1908] [09:46:56] [PUSH_TRACE] 📺 RELOAD: allMessagesWithReadBy has 50 messages [09:46:56] [PUSH_TRACE] 📺 RELOAD: First 10 IDs: [1821, 1822, 1823, 1891, 1908, 1909, 1911, 1913, 2351, 2352] [09:46:58] [LOG] Long press on chat icon detected! Triggering log upload... [09:46:58] [SCROLL_BTN] Showing button - 310pt from bottom > half 223pt